自绘按钮的实现
2008-01-19 20:25:45 来源:WEB开发网核心提示:如果你是之间把CXPButton的源文件引入自己的工程中的,那么在上图的Variable type中是看不到CXPButton选项的,自绘按钮的实现(5),但是可以通过以下方法加入:1. 首先保存工程后退出,2. 在工程的目录下找到一个后缀名为.clw的文件,这问题不大,五、附录DRAWITEMSTRUCT结构文档(根
如果你是之间把CXPButton的源文件引入自己的工程中的,那么在上图的Variable type中是看不到CXPButton选项的。但是可以通过以下方法加入:
1. 首先保存工程后退出。
2. 在工程的目录下找到一个后缀名为.clw的文件,将其删除。但是为了以防万一还是建议你实现备份一下。
3. 重新打开工程,进入类向导,此时会看到一下一个弹出对话框,我们选择“是(Yes)”。
4. 再选择“Add All”,这样我们就可以在类向导中使用CXPButton的变量类型了。
四、小结与提示
对于按钮来说,当按钮上面任何可见的部分发生变换的时候,都要调用DrawItem函数进行重绘。自绘制按钮必须设定BS_OWNERDRAW的属性,设置的代码在PreSubclassWindows函数中完成。另外为了防止系统字体设置的变化影响控件的表达效果,还可以在该函数中为控件指定某种固定的字体。但是要注意的是这个
让我们来回顾一下实现自绘按钮的基本步骤:
a. 确定设计方案;
b. 初始化,但是记得要在函数退出前恢复先前的GDI对象,并释放所占领的资源;
c. 添加相应消息函数;
d. 添加绘图函数DrawItem,在DrawItem中作图的顺序一般是先画外边框,再上底色,接着写文字,最后是画内边框。不过有些人也喜欢把边框放到最后画,这问题不大。
五、附录
DRAWITEMSTRUCT结构文档(根据Msdn翻译)
DRAWITEMSTRUCT
DRAWITEMSTRUCT 为需要自绘的控件或者菜单项提供了必要的信息。在需要绘制的控件或者菜单项对应的WM_DRAWITEM消息函数中得到一个指向该结构的指针。 DRAWITEMSTRUCT结构的定义如下:
更多精彩
赞助商链接