最近想在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字符集就没问题
期望得到解答
时间: 2024-11-13 09:45:31