| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1756 人关注过本帖
标题:改变数据颜色
只看楼主 加入收藏
zkqbp
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-7-7
收藏
 问题点数:0 回复次数:3 
改变数据颜色
请教各位高手
在DBGrid中某一单元格的数据如果达到一个定值,如何改变此单元格字体的颜色?
多谢各位高手能够指教。

[此贴子已经被作者于2007-7-8 15:14:46编辑过]

搜索更多相关主题的帖子: 数据 颜色 
2007-07-08 15:01
热情依然
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 

好像就算响应那个 DrawColumnCell 还是只能改某一列的字体颜色


c++/C + 汇编 = 天下无敌
2007-07-29 16:03
zkqbp
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-7-7
收藏
得分:0 

斑竹,我长期出差在外,刚看到你的回帖,不好意思。

我只是想改变某一个单元格的颜色,不是一列的颜色。

DrawColumnCell是函数吗?在我的问题中如何用呢?多谢帮助

2007-08-06 20:22
热情依然
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:22
帖 子:715
专家分:0
注 册:2005-4-5
收藏
得分:0 

那个DrawColumnCell 都只是可以根据条件改一行的颜色

void __fastcall TSaleEditBillForm::dbgdDetailDrawColumnCell(
TObject *Sender, const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if (dm_Main->cdsSaleDRowKind->AsInteger != 0 &&
dm_Main->cdsSaleDRowKind->AsInteger != 1){
dbgdDetail->Canvas->Brush->Color = clMoneyGreen;
dbgdDetail->Canvas->FillRect(Rect);
}

dbgdDetail->DefaultDrawColumnCell(Rect, DataCol, Column, State);
}

所以要改某一单元格的好像不可能,因为这个是自动从第一行扫描到最后一行的
除非你可以获得某一单元格的焦点,然后获得其中的句柄,就可以用API来改

//以下是我开发中的部分代码(是找某一单元格的句柄)
HANDLE hMainForm = FindWindow("TMainForm",NULL);
HANDLE hMdiForm = FindWindowEx(hMainForm,NULL,"MDIClient",NULL);
HANDLE hSaleEditBill = FindWindowEx(hMdiForm,NULL,"TSaleEditBillForm","编辑销售单据");
HANDLE hDBGrid = FindWindowEx(hSaleEditBill,NULL,"TDBGrid",NULL);
HANDLE hDBGridCell = FindWindowEx(hDBGrid, NULL,"TDBGridInplaceEdit",NULL);


//该代码未进行测试

HDC hdc = GetDC(hDBGridCell );
SetTextColor(hdc,RGB(100,67,200));
ReleaseDC(hDBGridCell,hdc);

但是这个估计都不是楼主想要的

[此贴子已经被作者于2007-8-7 20:51:08编辑过]


c++/C + 汇编 = 天下无敌
2007-08-07 20:43
快速回复:改变数据颜色
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023402 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved