CBitmapButton的用法

我们有时希望对应按钮的不同状态,按钮可以有不同的显示形式。比如通常情况下按钮的四种状态

正常显示 (Up)     鼠标按下(Down)        获得焦点(Focus)        不可用(Disable)

因此可以用四张位图来对应这四种状态,我们不需要为每一种状态单独加载位图,只需要利用

CBitmapButton类即可   

总共有两种方法实现:

下面先说第一种:

假如有四张位图:IDB_BMP_UP    IDB_BMP_DOWN     IDB_BMP_FOCUS          IDB_BMP_DISABLE   

给对话框添加一个CBitmapButton类的对象    m_bmpBtn;

在对话框上方一个按钮 ID :  IDC_BTN_IMG       设置Owner draw属性

然后在OnInitDialog中:

m_bmpBtn.LoadBitmaps( IDB_BMP_UP,IDB_BMP_DOWN,IDB_BMP_FOCUS,IDB_BMP_DISABLE);

m_bmpBtn.SubclassDlgItem( IDC_BTN_IMG , this );即可

其中SubclassDlgItem(UINT  nID, CWnd* pParent)用来将m_bmpBtn和IDC_BTN_IMG关联起来

第二种方法:

用AutoLoad(UINT  nID, CWnd* pParent),顾名思义,就是自动为按钮加载位图

可是光看这个函数似乎跟位图 并没有扯上关系啊???

这就需要从位图的命名上下功夫了,直接使用上面的位图是不可以的,需要重新命名一下

假如按钮的caption为:image(一定要有)   则四张位图分别为:

"imageU"    "imageD"    "imageF"   "imageX"  

注意四张位图的的ID 是有双引号

发布了31 篇原创文章 · 获赞 1 · 访问量 7万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章