1、添加图标资源IDI_ICON1; 使用函数 LoadIcon() 载入图标。因为LoadIcon() 是类 CWinApp 的成员函数,同时函数 LoadIcon() 返回所载入图标的句柄。所以我们采用以下方法来调用函数 LoadIcon()
2、为按钮设置图标了,这通过调用函数 SetIcon() 来实现: m_button1.SetIcon(m_hicn1); // m_button1是按钮变量。
3、先由函数 GetDlgItem() 获得一个指向 CWnd 对象的指针,再通过强制类型转换将该指针转换为一个指向 CButton 类对象的指针。进而通过该指针来调用函数 SetIcon()。具体实现代码如下: CWnd *pWnd = GetDlgItem(IDC_BUTTON1); CButton *Button= (CButton *) pWnd。
4、添加位图资源BMP1; 2 利用函数 LoadBitmap() 从资源中载入位图 所以,为达到载入位图的目的,不仅要定义一个位图句柄 hBitmap,而且还要定义一个应用程序实例句柄 hInstance, 并调用函数 AfxGetInstanceHandle() 以获得当前的应用程序实例句柄 。
5、只有在声明并获得了当前的应用程序句柄后,才能使用以下语句载入位图为按钮指定唯一的按钮标题(此例子为OK按钮,这里设置按钮标题为OK)并选中Ownerdraw属性,然后在项目中加一些位图资源。
6、在资源编辑的时候选中按钮的Owner draw即可,不需要选择Bitmap属性 2、在程序中定义一个CBitmapButton成员变量。不能使用ClassWizard为按钮映射一个CButton变量,然后改为CBitmapButton,这么做并不能将按钮直接映射为CBitmapButton类的对象,反而会出现初始化错误。也不能两种变量同时存在,会造成程序崩溃。