MFC学习设置对话框的背景颜色及设置透明.DOC

上传人:天*** 文档编号:1332849 上传时间:2019-02-09 格式:DOC 页数:3 大小:46.50KB
下载 相关 举报
MFC学习设置对话框的背景颜色及设置透明.DOC_第1页
第1页 / 共3页
MFC学习设置对话框的背景颜色及设置透明.DOC_第2页
第2页 / 共3页
MFC学习设置对话框的背景颜色及设置透明.DOC_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、MFC 学习 设置对话框的背景颜色及设置透明 (2012-03-20 20:57:28) 现说设置背景颜色。 我用了很多方法都不行,查了很多资料,现在说一下解决方案吧。 在 XXXXXXDlg.头文件的 protected:中加入 CBrush m_brush; 在 XXXXXXDlg.cpp 文件中的 OnInitDialog()初始化函数中加入画刷m_brush.CreateSolidBrush(RGB(255,255,255);RGB 中的颜色自己定义。 然后在类向导中添加 WM_CTLCOLOR 消息函数。在里面只写一句话 :return m_brush; 背景颜色就改了。 现在说怎么

2、设计透明了,那就更简单了。 在 OnInitDialog()初始化函数中添加两行代码: SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED); SetLayeredWindowAttributes(0,200,LWA_ALPHA); 第二行中的 200 为透明度, 0 为全透明, 255 为不透明。 MFC 改变标题栏的颜色 分类: MFC2009-02-06 17:15 2641 人阅读 评论 (0) 收藏 举报 mfc 1、创建一个普通的对话框; 2、重

3、写 WM_NCPAINT 的实现函数; 3、在实现函数中绘制标题栏,如果需要实现系统按钮,利用 DrawFrameControl 实现; 4、如果有系统按钮,重写 (WM_NCLBUTTONDOWN, WM_NCHITTEST, WM_NCLBUTTONUP)的实现函数; 带源码的例子请参考: http:/ VC 标准对话框的标题栏,是有 windows 系统控制颜色的(你可以通过修改桌面属性中的配色方案调整,看到实际效果),也就是说,在通常情况下,这个是不受程序控制的。 作为新手,不推荐做这个改变,比较麻烦。 简单介绍一下修改标题栏颜色和样式的两个方案:(都比较麻烦) 1. 修改对话框属性,

4、去掉系统标题栏,然后自己在客户区自绘一个假的标题栏,加上自定义的几个系统消息 响应按钮。这是多数漂亮的 MFC 工程界面常用的一种手段,优点是不仅可以改变颜色,而且可以改变形状,实现异形窗口和标题栏等等。百度搜 “VC 自绘标题栏 ”可以看到很多文章。 2. 3. 禁止并重载部分 NC 非客户区消息,可以实现改变标题栏颜色,缺点是在一些极端情况下,效果不好(比如弹出模态子对话框或者 AfxMessageBox 之类,会变成系统控制,颜色修改无效)。重载消息包括:WM_NCPAINT| WM_NCACTIVATE|WM_NOTIFY|WM_SETTEXT,主要是第一个,重载后在通常状态下,就改变

5、了颜色, 注意重载后不要调用基类虚函数。 4. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 void CTestPopDlg:OnNcPaint() / TODO: Add your message handler code here CBitmap bmp; bmp.LoadBitmap( IDB_BITMAP1 ); CWindowDC dc ( this ); CDC memDC; memDC.CreateCompatibleDC( CRect rect; GetWindowRect( memDC.SelectObject( dc.StretchBlt( 0, 0, rect.Width(), 25, / Do not call CDialog:OnNcPaint() for painting messages 方案二大概就是这个样子。 方案一是彻底的解决办法,但代码很零散而且多(提示:可以使用界面库实现),方案二相对代码较少,但效果强差人意。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。