大侠帮忙

allenc4213 2003-08-22 08:13:30
在VC++技术内幕(4版)看到改变对话框背景色,但我试一下却不行,请大家帮忙,
书上代码是这样的:
HBRUSH CMyDilog::OnCtlColor(CDC* pDC,CWnd* pWnd,UINT nCtlColor)
{
if(nCtlColor==CTLCOLOR_EDIT){
pDC->SetBkColor(RGB(255,255,0));
return m_hYellowBrush;
}
if(nCtlColor==CTLCOLOR_DLG){
pDC->SetBkColor(RGB(255,0,0));
return m_RedBrush;
}
return CDialog::onCtlColor(pDC,pWnd,nCtlColor);
}
...全文
91 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wsAnde 2003-08-22
  • 打赏
  • 举报
回复
up
heavenchang 2003-08-22
  • 打赏
  • 举报
回复
SetDialogBkColor
就行了
我的e-mail
heaven_chang@21cn.com
heavenchang 2003-08-22
  • 打赏
  • 举报
回复
etDialogBkColor
heavenchang 2003-08-22
  • 打赏
  • 举报
回复
改变对话框的背景色不用那么麻烦
HBRUSH CMyDilog::OnCtlColor(CDC* pDC,CWnd* pWnd,UINT nCtlColor)
{
if(nCtlColor==CTLCOLOR_EDIT){
pDC->SetBkColor(RGB(255,255,0));
return m_hYellowBrush;
}
if(nCtlColor==CTLCOLOR_DLG){
pDC->SetBkColor(RGB(255,0,0));
return m_RedBrush;
}
return CDialog::onCtlColor(pDC,pWnd,nCtlColor);
}
fooxu 2003-08-22
  • 打赏
  • 举报
回复
可能是m_hYellowBrush m_RedBrush没有定义

改变对话框的背景色不用那么麻烦,下面的就可以了:
在APP类的InitInstance()函数的
int nResponse = dlg.DoModal();
前面加上下面的
SetDialogBkColor(RGB(*,*,*), RGB(*,*,*));
就行了
cadinfo 2003-08-22
  • 打赏
  • 举报
回复
我看代码没有问题,你的变量成员是否没有声明

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧