社区
非技术类
帖子详情
如何设置动态创建的CButton背景颜色和字体颜色?
zzWind
2002-03-24 10:46:37
同上
...全文
1170
6
打赏
收藏
如何设置动态创建的CButton背景颜色和字体颜色?
同上
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
arte
2002-03-26
打赏
举报
回复
请教Tasehouny兄
如何不用onCtrlColor而改变控件的颜色,比如说,一个dialog上面有一个
edit control(idc_name)和一个button(idc_button1) ,我想当button1被
按下时,改变edit control的背景色,下面的代码为什么不对?
void CMyDialog::OnButton1()
{
// TODO: Add your control notification handler code here
CEdit* pEd=(CEdit*)GetDlgItem(IDC_name);
CDC *pDC;
pDC=pEd->GetDC();
pDC->SetBkColor(RGB(255, 0, 0));
GetDlgItem(IDC_name)->UpdateWindow();
}
zzWind
2002-03-24
打赏
举报
回复
to bluesea21(谢辉)
我重载了OnCtrlColor还是没有用。
Tasehouny
2002-03-24
打赏
举报
回复
WM_CTLCOLOR消息对下列五类控件是适用的:
1.Check box, radio button, push button:用选定的brush画出该控件所被放置的矩形区,控件的形状和文本再在其上画出;
2.Edit control:画出编辑区;
3.Group box:画出标题文本之下的矩形区域;
4.Scroll bar:画出滑块的轨迹;
5.List box:画出列表区域。
静态文本、边框和矩形不受该消息的影响。
还须注意的是,虽然WM-CTLCOLOR消息对Push button是适用的,但是从Windows 3.0及其以后的版本的系统中,加入了用户程序不能修改按钮外观颜色的限制,如果要达到您想要的效果的话,您需要使用owner-drawn button。
关于WM_CTLCOLORBTN的进一步的信息,您可以参考http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/buttons_0d4e.asp
关于owner-drawn button的进一步的信息,您可以参考:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/buttons_4jub.asp
- 微软全球技术中心 VC技术支持
本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查
(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
我觉得只能自己画!我就是这样做的!
bluesea21
2002-03-24
打赏
举报
回复
CDC *pDC;
pDC=GetDlgItem(IDC_BUTTON1)->GetDC();
pDC->SelectObject(pFont);
GetDlgItem(IDC_BUTTON)->UpDataWindow();
//字体颜色:CFont pFont.
背景须重载OnCtrlColor
zzWind
2002-03-24
打赏
举报
回复
to psusong(我心飞扬)
我是用你的方法就是Button颜色改变不了,Edit和Dlg都可以。
GoogleGeek
2002-03-24
打赏
举报
回复
那时因为你调用该函数的方法不对!具体的做法如下所示:
in .h
class CYourDlg:public CDialog{
private:
HBRUSH bkColor,dlgcolor;
CBrush brush,dglBrush;
};
in .cpp
CYourDlg::CYourDlg(CWnd* pParent /*=NULL*/)
: CDialog(CYourDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CShowMe)
brush.CreateSolidBrush (RGB(255,255,0));
dglBrush.CreateSolidBrush(RGB(83,200,255));
dlgcolor=(HBRUSH)dglBrush;
bkColor=(HBRUSH)brush;
}
映射消息函数:
HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_EDIT)//设置编辑控件的颜色
{
pDC->SetBkColor (RGB(255,255,0));
return bkColor;
}
if(nCtlColor==CTLCOLOR_DLG)//设置对话框的背景色
{
pDC->SetBkColor (RGB(83,200,255));
return dlgcolor;
}
//设置其他的控件的方法相同,建议兄台看一下MSDN
}
南京扬子石化精细化工有限责任公司
QQ:81824475
Email:psu.song@163.com
设置
C
Button
控件的
字体颜色
和
背景颜色
现在,当你创建CTestBtn类型的按钮,并将其添加到窗口中时,它的
字体颜色
和
背景颜色
将会按照我们在OnDrawItem函数中
设置
的颜色进行绘制。这种方法允许你对按钮的外观进行高度自定义,而不仅仅是修改
字体颜色
和背景...
C
Button
特效,背景色,文本颜色等
在创建C
Button
对象时,通常会将其与对话框资源中的按钮控件ID关联,这样可以通过OnBnClicked()消息处理函数响应用户的点击事件。 ### 改变背景色 要改变C
Button
的背景色,可以使用SetBkColor()函数。该函数接受一...
VC6.0改变按钮的
背景颜色
默认情况下,C
Button
控件的颜色遵循系统设定,但有时我们可能需要自定义其外观,比如改变
背景颜色
以满足特定的界面设计需求。这就需要我们对C
Button
类进行扩展,创建一个新的派生类,并重写某些关键成员函数,以实现...
可
设置
底图、文本
字体颜色
的自绘式按钮
这个标题和描述提到的“可
设置
底图、文本
字体颜色
的自绘式按钮”是一个实现了这种功能的控件。下面我们将详细讨论如何实现这样的自绘式按钮以及它的工作原理。 首先,自绘式按钮的核心在于重写`OnDraw`函数,这个...
C
Button
ST类
动态创建
按钮 按钮背景
//
设置
背景颜色
} afx_msg void OnBnClickedMy
button
() { // 处理按钮被点击的逻辑 } // 其他函数... }; ``` 通过这个例子,我们可以看到C
Button
ST类如何简化了创建和自定义按钮的过程。在实际开发中,你...
非技术类
1,660
社区成员
58,948
社区内容
发帖
与我相关
我的任务
非技术类
VC/MFC 非技术类
复制链接
扫一扫
分享
社区描述
VC/MFC 非技术类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章