CBitmapButton 类
创建位图图像替代文本标记的按钮控件。
Class CBitmapButton : public CButton
备注
CBitmapButton 对象包含多达四个位图,为按钮的不同状态包含图像:up(or normal),down(or selected),focused,和disabled
。只有第一个位图是必须的;其他都是可以选择的。
位图按钮(Bitmap-button)图像包括图像的边框以及图像本身。边框通常扮演部分显示按钮的状态。例如,focused状态下的位图通
常和up状态下的一样,但是它的边框是矩形虚线或者粗实线。disabled状态下的位图通常类似于up状态但是对比度较低(如暗灰色
或者灰色菜单选择)。
这些位图可以是任意大小,但是对于up状态它们都被视为同样大小。
各种应用要求位图图像的不同组合:
Up Down Focused Disabled 应用
* 位图
* * 没有WS_TABSTOP样式的按钮
* * * * 带有所有状态的对话框按钮
* * * 带有WS_TABSTOP样式的对话框按钮
当创建一个位图按钮控件,设置BS_OWNERDRAW样式指定按钮为自己绘制的。这使Windows为按钮发送WM_MEASUREITEM和WMDRAWITEM
消息。框架为你处理这些消息和管理按钮的外观。
在windows客户区域创建位图按钮控件
1、为按钮创建一到四个位图。
2、构建CBitmapButton对象。
3、调用Create函数创建按钮控件,然后附加到CBitmapButton对象上。
4、当位图按钮构造好后,调用LoadBitmaps成员函数来加载位图资源。
一个对话框中包括一个位图按钮
1、为按钮创建一到四个位图。
2、创建一个带有自绘(owner-draw)按钮的对话框模板,按钮放置在你想要的位图按钮的地方。
3、设置按钮的caption为"MYIMAGE",按钮定义符号为IDC_MYIMAGE。
4、在你应用程序的资源脚本中,在步骤3中为每个为按钮创建的图形设置标题为ID加一个字母,"U","D","F",或者"X"(对应于up,down,focused,和disabled)的字符串。例如,像标题为"MYIMAGE"的按钮,它们的ID为"MYIMAGEU","MYIMAGED","MYIMAGEF",和"MYIMAGEX."你必须指定位图的ID要有双引号。否则资源编译器将制定一个整数的资源,那么MFC在加载图片时就会失败。
5、在你的应用程序的对话框类(继承自CDialog)中,增加一个CBitmapButton成员对象。
6、在CDialog对象的OnInitDialog例程中,调用CBitmapButton对象的AutoLoad函数,按钮控件的ID和CDialog对象的指针作为参数。
如果你想处理窗口信息,像BN_CLICKED,位图按钮控件发送给它的父(通常是一个从CDialog派生的类),为CDialog派生对象增加一个消息映射入口,和每个消息处理成员函数。CBitmapButton对象发送的通知跟CButton是一样的。
类CToolBar对位图按钮采用不同的方法。
更多关于CBitmapButton的信息,参考Controls。
要求
头文件:afxext.h
参考
CTLRLTEST sample:Implements Custom Controls
CBitmapButton Members
CButton Class
Hierarchy Chart
原文:
http://msdn.microsoft.com/zh-cn/library/a3y45xs0(v=vs.90).aspx
posted on 2012-03-22 10:36
canaan 阅读(1801)
评论(0) 编辑 收藏 引用 所属分类:
MSDN