对话框标题栏自绘 + 双缓冲显示位图 + 位图按钮类的使用 代码分享

dvlinker
C/C++领域优质创作者
博客专家认证
2010-09-05 11:26:49
加精
1. 标题栏自绘:
在网上搜索了好多关于标题栏自绘的例子,但是大都是存在很多问题的,多是没有自绘彻底,比如出现闪烁,会出现默认风格最大化等按钮的显示,不过有份代码处理的比较好,至于出于什么地方想不起来了,下面会一并给出源代码,本例是在这份源代码的基础上作的改进,主要有一下几个方面:
(1)当我们点击最大化,最小化或关闭按钮的时候,只有当左键弹起时才能起效;
(2)当窗口失去焦点时,标题栏应有对应的反映,即改变标题文字和最大化等按钮的颜色;
(3)使用了CToolTipCtrl控件,实现了当我们将鼠标放置道最大化等按钮上时,显示文字提示;
(4)可以设置对话框标题栏的左上角和右上角是以圆角显示还是以执教显示,调用即可实现;
(5)使用FrameRect函数绘制了对话框的边线;
(6)对原有的代码做了一些简化的处理;
(7)将对话类封装了一下,即CColorTitleDlg,要实现多个对话框用以风格的重绘,只需继承该对话框类即可。

2. 双缓冲显示位图:
双缓冲显示位图的原理网上介绍的比较多,这里就不再赘述。本例中的CTestBitmapShowDlg主测试类中位图的显示,以及CColorTitleDlg标题栏重绘类中标题栏的贴图操作都是使用双缓冲来实现,以避免界面的闪烁。

3. 位图按钮类的使用:

本例中对CTestBitmapShowDlg主测试类中的按钮进行了美化处理,使用了CBitmapBtn按钮位图类,事先用photoshop为每个按钮绘制四种不同状态的位图,即正常状态,鼠标选中状态,按下鼠标状态和非使用状态,为了达到立体感的效果,需要使用到photoshop中的渐变色处理。CBitmapBtn按钮位图类的使用方法:首先将定义按钮对应的控件变量,然后将绘制的bitmap图片导入到工程中,调用CBitmapBtn按钮位图类的SetBitmap方法将按钮图片与按钮关联起来。

源代码及详情请见博文:http://blog.csdn.net/chenlycly/archive/2010/09/05/5864367.aspx
...全文
3331 114 打赏 收藏 转发到动态 举报
写回复
用AI写文章
114 条回复
切换为时间正序
请发表友善的回复…
发表回复
LXJ102 2013-05-03
  • 打赏
  • 举报
回复
谢谢楼主分享啊!
lzx995583945 2012-07-04
  • 打赏
  • 举报
回复
有没有一些WTL的具体例子啊
yy198619 2011-06-03
  • 打赏
  • 举报
回复
下下来试试,虚心学习
hello_stranger 2010-09-20
  • 打赏
  • 举报
回复
学习中....
谢谢分享
yzhdanny 2010-09-18
  • 打赏
  • 举报
回复
强势围观,先回帖,再学习
dvlinker 2010-09-11
  • 打赏
  • 举报
回复
帖子挂了一个星期了,稍后就结贴了!
wbj2008 2010-09-10
  • 打赏
  • 举报
回复
真的不错。。。
wbj2008 2010-09-10
  • 打赏
  • 举报
回复
真的不错。。。
羽毛乱发 2010-09-10
  • 打赏
  • 举报
回复
顶一个,楼主不错的!
dvlinker 2010-09-09
  • 打赏
  • 举报
回复
[Quote=引用 97 楼 zhangjun460 的回复:]

效果在哪里能不能看下呢
[/Quote]效果图请参见博文:http://blog.csdn.net/chenlycly/archive/2010/09/05/5864367.aspx
jeam0402 2010-09-09
  • 打赏
  • 举报
回复
mark mark
zhangjun460 2010-09-09
  • 打赏
  • 举报
回复
效果在哪里能不能看下呢
geniusflly 2010-09-09
  • 打赏
  • 举报
回复
谢谢 分享~~~~~~~
xluo2002 2010-09-08
  • 打赏
  • 举报
回复
好东西,就是要分享
winsei 2010-09-08
  • 打赏
  • 举报
回复
这个不错,LZ很强大
zz_zz12345 2010-09-08
  • 打赏
  • 举报
回复
不错,学习中,谢谢分享。
jianrenxman 2010-09-08
  • 打赏
  • 举报
回复
学习....留名~~~
hk287544155 2010-09-08
  • 打赏
  • 举报
回复
来过!
enter333 2010-09-08
  • 打赏
  • 举报
回复
好东西一定要顶。。
flyskytoday 2010-09-08
  • 打赏
  • 举报
回复
学习....留名~~~
加载更多回复(52)

15,979

社区成员

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

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