梁海泉的博客
posts - 15, comments - 2, trackbacks - 0, articles - 0
C++博客
首页
新随笔
联系
管理
聚合
<
2007年1月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(5)
给我留言
查看公开留言
查看私人留言
随笔档案
2007年1月 (15)
友情链接
rosinahua的博客
搜索
最新评论
1. re: 控制光驱进出的代码
_T函数是什么?
--java
2. re: 控制光驱进出的代码
谢谢!!!
--秋水
阅读排行榜
1. ANSI 和 UNICODE 的函数对应表(2316)
2. 为窗口添加鼠标进入和离开事件(2039)
3. 改变窗体的背景颜色的方法(590)
4. 控制光驱进出的代码(563)
5. 在DC中檫除画线(511)
评论排行榜
1. 控制光驱进出的代码(2)
2. ADO访问数据库方法(文章写得较早,有些没有注意编码的问题.)(0)
3. 使用dll的方法(0)
4. 简单的多线程方法(0)
5. ANSI 和 UNICODE 的函数对应表(0)
改变对话框控件的颜色的方法
Posted on 2007-01-12 15:36
梁海泉
阅读(304)
评论(0)
编辑
收藏
引用
在窗体中的WM_CTLCOLOR消息中响应下面的函数
HBRUSH CmyDlg::OnCtlColor(CDC
*
pDC, CWnd
*
pWnd, UINT nCtlColor)
{
/**/
/*
每一个控件刷新的时候都发送这个消息,其中pDC是控件的dc,pWnd是控件对应的CWnd类,nCtlColor是控件的类型。比如Edit控件对应的是CTLCOLOR_EDIT
*/
if
((pWnd
->
GetDlgCtrlID()
==
IDC_EDIT1)
&&
(nCtlColor
==
CTLCOLOR_EDIT))
{
COLORREF clr
=
RGB(
255
,
0
,
0
);
pDC
->
SetTextColor(clr);
//
设置红色的文本
clr
=
RGB(
0
,
0
,
0
);
pDC
->
SetBkColor(clr);
//
设置黑色的背景
return
::CreateSolidBrush(clr);
//
作为约定,返回背景色对应的刷子句柄。
}
else
{
HBRUSH hbr
=
CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return
hbr;
}
}
/**/
/*
返回的背景颜色是可以被文字覆盖的,但是SetBkColor的就不会,如果设置了DC的透明模式,则不会被覆盖住了。
*/
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理