我要在vc6下实现一个位图按钮的显示。根据网上查到的资料,我用了以下方法:1,建立MFC工程,创建一个对话框;
2,在对话框上添加一个按钮,属性里选中owner draw(所有者绘制);
    该按钮的ID为IDOK
3,引入4幅图片作为资源,ID分别为IDB_BITMAP1~4。都是24位bmp位图。
4,在对话框的OnInitDialog()里加入下面代码:
CBitmapButton m_bmpBtn;
m_bmpBtn.SubclassDlgItem(IDOK,this);
m_bmpBtn.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4)
;
m_bmpBtn.SizeToContent();
结果是程序编译和运行OK,但这个按钮完全没有显示出来,点击那个应该在的区
域也没有反应。
本来我期望的结果是,正常状态下显示IDB_BITMAP1(凸起状图片),鼠标按钮按
下后变成IDB_BITMAP2(下陷状图片)。
是不是我遗漏了什么步骤,或者哪里设置的不对?
恳请各位指教。
刚过来这里,没什么分数,刚刚回了贴不过貌似还拿不到分。。各位多多包涵一下。。

解决方案 »

  1.   

    我检查过了,按钮没有隐藏,属性方面,我在“样式”里勾了“所有者绘制”和“位图”,其它都不变。
    是不是要加一句buttton.show()之类的话?
      

  2.   

    在onerasebkgnd中写代码  或ONPAINT
      

  3.   

    我试着加了GetDlgItem(IDOK)->ShowWindow(SW_SHOW);  没效果。
      

  4.   


    貌似不行。我在ONPAINT里放这些代码以后,运行时会出现“Debug Assertion Failed”还是十分不解啊,各位还有别的思路提示么?
    另,怎么修改分数?我刚注册进来时没分可给,希望后面能尽力给一些
      

  5.   

    你需要早Onpaint重绘,重载CButton好了