CBitmapButton的使用 CBitmapButton作为MFC的控件类,并不为很多人所使用,因为现在网上遍布着从CButton派生的各种各样的按钮类,其中最为著名的就是CButtonST类了。但是最近在CSDN上看到几个问题都是使用CBitmapButton类,但是由于使用错误、不当而造成程序崩溃或者错误的。所以总结一下CBitmapButton类的使用,希望能帮助一些初学者。可以参考MSDN自带的例子“CTRLTEST”学习CBitmapButton的用法。
over 我们有时希望对应按钮的不同状态,按钮可以有不同的显示形式。比如通常情况下按钮的四种状态 正常显示 (Up) 因此可以用四张位图来对应这四种状态,我们不需要为每一种状态单独加载位图,只需要利用 CBitmapButton类即可 总共有两种方法实现: 下面先说第一种: 假如有四张位图:IDB_BMP_UP 给对话框添加一个CBitmapButton类的对象 在对话框上方一个按钮 ID : IDC_BTN_IMG 然后在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" 注意四张位图的的ID 是有双引号的。
(#)
|
|