首页 > 代码库 > MFC下的aero效果学习笔记

MFC下的aero效果学习笔记

最近想在MFC中用下aero

 

首先参考了

http://blog.csdn.net/polytechnic/article/details/5696797

中的一系列的步骤,进行了初步学习

但是对于其中按钮效果不是特别满意,文中的按钮解决是通过将窗口改为层窗口,设定透明色为别的颜色解决的,我期望找到可不用层属性的解决方案

 

后来参考了

http://blog.csdn.net/cometnet/article/details/6547504

对dwm有了更进一步的了解,知道了一些更丰富的内容

但是还是没有解决上面的疑问

 

最后,参考了TortoiseSVN的源码,终于在无层属性的窗口中实现了按钮的正常显示

主要技术点是使用uxtheme.h中的函数进行绘制

主要用到了

BeginBufferedPaint

DrawThemeBackground

DrawThemeTextEx

EndBufferedPaint

OpenThemeData

CloseThemeData

 

思路是在button的paint时,使用BeginBufferedPaint取得hdc,再绘制,颜色才正常

以上,为总结备忘

 

另外,最后还遗留了一个问题没有得到解答

工程编码为多字节时,按钮按下后状态不正常

unicode字符集就没问题

期望得到解答

MFC下的aero效果学习笔记