电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

MFC自绘按钮的实现VIP免费

MFC自绘按钮的实现_第1页
1/7
MFC自绘按钮的实现_第2页
2/7
MFC自绘按钮的实现_第3页
3/7
如果你希望能够在自己的程序中表现出新意,那么你一定不会仅仅满足于MFC 提供那些标准控件。这时,我们就必须自己另外多做些工作了。就改变控件外观这一点来说,主要是利用控件的自绘功能(Ow ner Draw )实现的。本篇将和各位一起定义一个XP 风格的CXPButton按钮类,目的不在于介绍CXPButton 类的使用技巧,而在于向各位阐述实现自绘按钮的方法。当然如果你觉得CXPButton 有用的话,也可以把它的源文件保存下来,直接加入到自己的项目中。 本篇要点: 一、准备工作 二、实现原理及难点 三、按钮类的使用 四、小结与提示 五、附录 一、准备工作 在开始编码之前,首先应该确定好,更准确的说应该是设计好按钮在各种状态下的外观。按钮控件的几中基本状态包括: Normal 状态,就是按钮一开始显示时的样子。 Over 状态,鼠标指针移动到按钮上面时按钮显示的样子。 Dow n 状态,按下按钮时显示的样子。 Focus 状态,按钮按下后松开的样子,例如标准按钮按下松开之后会看到按钮内部有一个虚线框。 Disable 状态,当然就是按钮被设置成无效的时候的样子啦。 我参考了一下Window sXP 中普通按钮的实际样子,设计出XP 按钮各种状态的外观,如下图所示: 至于Dow n 状态主要是在Over 状态的基础上将文字往右下的方向稍微平移,以实现下压的效果。 二、实现原理及难点 下面我们开始类的创建,在Workspace 的ClassView 页中右击列表树的根结点,选择 New Class„ 在弹出窗口中进行派生类的定义,如下图所示,注意,你需要填写的只有Name 和Base class两项,其余的选项保持默认值就可以了。 按OK 按钮退出之后,我们可以在ClassView 里面看到新创建的类的名字。接下来我们可以为 CXPButton 类添加各种成员变量。因为自绘控件说穿了就是画图,所以在成员变量中可以看到各种与画图有关的数据类型,一般来说成员变量会在类的构造函数中初始化,在类的析构函数中销毁。详细代码请参见本篇附带的源程序。 下面简要叙述一下按钮的实现原理: 1. 在控件初始化时为按钮添加 Owner Draw 的属性。这是因为在MFC 中,要想激活控件的自绘功能,要求该控件的属性中必须包含属性值 BS_OWNERDRAW,这一步我们可以通过类向导为 CXPButton 类添加 PreSubclassWindow()函数,在该函数中完成属性值的设置。当激活控件的自绘功能之后,每次控件状态改变的时候都会运行函数 DrawItem(),该函数的作用就是绘制控件在各种...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

MFC自绘按钮的实现

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部