在编程中,经常要用到按钮控件,大部分情况下,文字按钮就 OK 了,但有时为了更好的效果,
需要用到图形按钮。
在 MFC 中,应用 CBitmapButton 就可以实现图形按钮。CBitmapButton 类继承自
CButton 类。你可以为图形按钮指定四张图片,分别对应按钮的四种不同状态:
正常显示(Up),鼠标按下(Down),获得焦点(Focused),不可用(Disabled)。
正常显示(Up)状态的图片是必须的,其他三张图片是可选的。
还有,按钮的 Style 必须指定为 BS_OWNERDRAW.。
以下是利用 CBitmapButton 实现图形按钮的实例:
第一种方法:
(一)在 VC6 下新建一对话框工程,在对话框界面上拉出一按钮控件
指定按钮的 Style 为 Owner Draw,即程式中得 BS_OWNERDRAW 样式。
利用 ClassWizard 为按钮关联 CButton 类变量,然后将 CButton 类型手动改为
CBitmapButton。
(二)导入指定按钮四种状态的图片
以下只导入了 3 张图片,分别对应 Up,Down,Focused
(三)在对话框的 OnInitDialog 函数中添加如下代码
LoadBitmaps 加载状态图片,注意顺序为 Up,Down,Focused,Disabled。
1 // TODO: Add extra initialization here
2 m_btnBitmap.LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUSED); //Disabled 状态的图
片没有制作
3 m_btnBitmap.SizeToContent(); //调整按钮大小为图片大小
第二种方法:利用 SubclassDlgItem
在界面中拉出一按钮控件后,不用关联变量,指定按钮的 Style 为 Owner Draw,然后同上一
样导入四张状态图片。创建 CBitmapButton 对象(注意不要创建函数的局部变量,否则在函
数执行完毕时就销毁了),最好创建为对话框的成员变量,在对话框的 OnInitDialog 初始化
函数中用 LoadBitmaps 加载图片,再利用 SubclassDlgItem 方法将该 CBitmapButton 与
刚开始在界面上拉出的控件关联。按钮控件自动调整为和图片一样大小。
评论5
最新资源