MFC非客户区完美自绘(标题栏,边框,标题按钮)例子

来源:清泛编译     2016-07-21 09:58:31    人气:     我有话说( 0 人参与)

标题栏自绘是很多初学者最苦恼的问题,目前网上的例子要么是系统默认的标题按钮时不时的会重现出来,要么是影响了窗口非客户区原来默认的行...

 

标题栏自绘是很多初学者最苦恼的问题,目前网上的例子要么是系统默认的标题按钮时不时的会重现出来,要么是影响了窗口非客户区原来默认的行为(去掉系统菜单)等等,各种的不如意,于是本人研究试验了下,感觉这个是比较完美的了,不影响任何原来窗口的特性,比如标题栏系统菜单等,要么是把非客户区去掉了,然后自己模拟,笔者也有这样处理过,不过这里只演示非客户区标题栏绘制的例子,代码简单易学,代码是用VS2008+SP1开发的。

没什么关键技术,就是NCPAINT和NCCALLSIZE这两个处理好。绘制的时候用CWindowDC dc(this);,然后设置绘制的裁剪区域,按钮用Dui的思想绘制并封装成一个类CDUIButton,这样可以随便往标题添加任何按钮。

以上内容来自:http://bbs.csdn.net/topics/390624967
感谢原作者,源码下载:NCSkinDemo.rar
 


当然也可以整个标题栏全部自绘,这样更简便些。先设置Dialog为无边框的,然后在OnPaint函数中指定上面一个区域绘制标题栏,元素可以以图片(位图)填充,这样做非常灵活,一些软件漂亮的界面都是采用图片GDI自绘拼出来的。


本文系清泛网整理。

MFC 非客户区 自绘

注:本文为本站或本站会员原创优质内容,版权属于原作者及清泛网所有,
欢迎转载,转载时须注明版权并添加来源链接,谢谢合作! (编辑:admin)
分享到: