CFormView的背景色问题

zhongbing79 2003-06-03 04:17:04
我想将我的CFormView对话框的背景色改变一下,InitStance()中的SetDialogBkColor()好像不能改变这个视图中的对话框的背景色,不知有何好办法?望各位高手相助.谢谢.
...全文
62 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
visualc6 2003-06-03
  • 打赏
  • 举报
回复
gz
catchme 2003-06-03
  • 打赏
  • 举报
回复
给类CXXFormView添加一个CBrush类的成员变量m_brush
然后在其构造函数中加m_brush.CreateSolidBrush(RGB(255,255,255));
如我的CXXFormView类
CPackInterView::CPackInterView()
: CFormView(CPackInterView::IDD)
{
//{{AFX_DATA_INIT(CPackInterView)
//}}AFX_DATA_INIT
m_brush.CreateSolidBrush(RGB(255,255,255));//设为白色
}
接着映射一个WM_CTLCOLOR消息,在ClassWizard中添加.在OnCtlColor中如下设置即可
HBRUSH CPackInterView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
if(nCtlColor==CTLCOLOR_DLG)
return (HBRUSH)m_brush.GetSafeHandle();
// TODO: Return a different brush if the default is not desired
return hbr;
}


triggerd 2003-06-03
  • 打赏
  • 举报
回复
映射WM_CTLCOLOR消息
HBRUSH CXXFormview::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
LOGBRUSH logbrush;
COLORREF bkcolor(RGB(255,255,0));
logbrush.lbHatch = 0;
logbrush.lbStyle = BS_SOLID;
logbrush.lbColor =bkcolor;
logbrush.lbColor =bkcolor;
HBRUSH m_hBrush=(HBRUSH)::CreateBrushIndirect(&logbrush);//使用这个
return m_hBrush;
}

15,979

社区成员

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

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