VC里的对话框程序怎么设置背景色?
解决方案 »
- 求大神指导MFC做简单计算器
- socket连接和受物理地址影响吗?
- win32程序中调用AfxGetAppName
- 用CInternetSession抓取网页的问题
- 在做DirectShow时,printWindow的问题
- 学VC迷茫了
- 建立映射函数WNetAddConnection2的问题,真是咄咄怪事!
- 如何在状态栏上实时显示CEditView中的光标所在处的行列号
- 怎么样响应按钮的LButtonDown消息
- 能不能解释一下VC下动态连接和静态连接有什么区别?
- 在MDI程序中,如何在视图上添加控件(按钮、输入框等)~
- 写了程序后,先编译连接一边后,修改了一些东西后,再编译连接,怎么回出问题呢??
{ //设置brush为希望的背景颜色
CBrush backBrush(RGB(255, 128, 128)); //保存旧的brush
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect); //画需要的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush); return TRUE;}
从类向导最后一个标签页,改Message filter为Windows,返回消息映射标签页你就会发现WM_ERASEBKGND消息。
改变对话框背景有多种方法,你还可以在APP类中调用SetDialogBkColor(...,...),前一参数设背景,后一参数设文本颜色。也可以通过WM_CTLCOLOR,返回不同画刷来改变背景。
在对话框类里加入成员:CBrush m_brBrush;
然后在构造函数里对其进行初始化:
m_brBrush.CreateSolidBrush(RGB(255,255,0));
响应WM_CTRLCOLOR消息,在函数中加入下面的语句:
if(nCtlColor==CTLCOLOR_DLG)
{
return (HBRUSH)m_brBrush.GetSafeHandle();
}
就万事OK啦!
中调用SetDialogBkColor();就可以拉