MFC无标题栏对话框美化.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MFC无标题栏对话框美化

无标题栏和边框的对话框Border 属性改为 NoneTitle bar属性改为 False对话框添加OnInitDialog函数OnInitDialog 在vs2010中实现为虚函数, 所以在“项目”- “类向导”- “虚函数”-找到对应虚函数添加即可,就这么简单。移动无标题栏的对话框拖动无标题窗口时,欺骗WINDOW在鼠标点下是像WINDOW发送一个鼠标选中WINDOW标题栏的消息!添加鼠标左键消息。void CMyPlayerDlg::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: Add your message handler code here and/or call default //使窗口可以拖动 PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM (point.x, point.y)); CDialog::OnLButtonDown(nFlags, point);}在OnLButtonDown的鼠标响应消息添加红色部分代码!WM_NCLBUTTONDOWN鼠标选中非客户区域(标题栏)HTCAPTION鼠标选中了标题栏MAKELPARAM (point.x, point.y))返回一个LPARAM的值PostMessage函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回,是异步消息模式。消息队列里的消息通过调用GetMessage和PeekMessage取得。原型与参数如下: 函数原型:BOOL PostMessage(UINT Msg,WPARAM wParam,LPARAM lParam); 参数说明: Msg:指定被寄送的消息。 wParam:指定附加的消息特定的信息。 IParam:指定附加的消息特定的信息。返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。MFC设置对话框背景颜色方法一:重载OnPaint(),即WM_PAINT消息。CRect rect; CPaintDC dc(this); GetClientRect(rect); dc.FillSolidRect(rect,RGB(0,255,0)); //设置为绿色背景方法二:重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor), 即WM_CTLCOLOR消息。HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何属性if(nCtlColor==CTLCOLOR_DLG)//更改对话框背景色 { pDC-SetTextColor(RGB(0,0,0)); pDC-SetBkColor(RGB(166,254,1)); HBRUSH b=CreateSolidBrush(RGB(166,254,1)); return b;}else if(nCtlColor==CTLCOLOR_STATIC) //更改静态文本颜色{ pDC-SetTextColor(RGB(0,0,0)); //设置文本颜色 //pDC-SetBkColor(RGB(166,254,1)); //需要指定背景色的时候用,此时不用pDC-SetBkMode(TRANSPARENT); //设置背景透明 HBRUSH b=CreateSolidBrush(RGB(166,254,1)); //更改静态文本 return b;}else if(nCtlColor==CTLCOLOR_EDIT)//更改编辑框 { pDC-SetTextColor(RGB(0,0,0)); //设置文本颜色 pDC-SetBkMode(TRANSPARENT); //设置背景透明 HBRUSH b=CreateSolidBrush(RGB(165,254,236)); //更改颜色 return b; }else if(nCtlColor==CTLCOLOR_BTN)//更改按钮背景色{HBRUSH b=CreateSolidBrush(RGB(135, 206, 235));return b;} if(IDC_CHECK1==pWnd-GetDlgCtrlID())//更改按钮背景色{HBRUSH b=CreateSolidBrush(RGB(135, 206, 23

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档