我使用如下代码给按钮添加位图资源:
         HINSTANCE hInstance = ::AfxGetInstanceHandle();
HBITMAP hBitmap = ::LoadBitmap(hInstance,"Bitmap1.bmp");
m_BtonBmp.SetBitmap(hBitmap);//m_BtonBmp是按钮变量现运行到第2句出现错误,hBitmap 为0x00000000 的不到是什么原因?
  我查看LoadBitmap的函数说明,说第二个变量是,位图资源名
  我想问下,位图资源名 是不是就是资源文件的文件名??

解决方案 »

  1.   

    LoadBitmap只能载入资源中的位图吧? 
    LoadImage
      

  2.   

    提供另一种方法参考
    首先,你得选中按钮的owner Draw属性,在资源中加载两副*.bmp格式的位图,然后在你的对话框类中加入:
    CBitmapButton m_btnX1;//必须放在函数外面才能正常实现BOOL CXXXXXXX::OnInitDialog()
    {
    CDialog::OnInitDialog();m_btnX1.LoadBitmaps(IDB_XXXX_UP,IDB_XXXX_DOWN);//这里是两副位图,鼠标按下和弹起,
                                                   //  也可以只加一个ID资源;
    m_btnX1.SubclassDlgItem(IDC_DASEN_X1,this);
    m_btnX1.SizeToContent();
    }
      

  3.   

    HBITMAP LoadBitmap(
    HINSTANCE hInstance, // handle of application instance
    LPCTSTR lpBitmapName // address of bitmap resource name
    );
    这上说的是位图的资源名,不知道什么原因呀?而且我用:
    HBITMAP hBitmap=(HBITMAP)::LoadImage(NULL,"bitmap1.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);还是的不到!!
      

  4.   

    你是问bitmap1.bmp问件的路径吗?
    D:\vc++workspace\aaa\res\bitmap1.bmp
    这是位图的位置
    aaa是 工程的名字
      

  5.   

    HBITMAP LoadBitmap(
      HINSTANCE hInstance,  // handle to application instance
      LPCTSTR lpBitmapName  // address of bitmap resource name
    );
    应该这样用,看行不行:
    HBITMAP hBitmap = ::LoadBitmap(hInstance,"D:\\vc++workspace\\aaa\\res\\bitmap1.bmp");
      

  6.   

    回:
     wsb_8224(人在江湖飘啊,哪有不挨刀呀) ( ) 信誉:100    Blog  2006-12-18 11:39:20 
     
     
    首先,你得选中按钮的owner Draw属性,在资源中加载两副*.bmp格式的位图,然后在你的对话框类中加入:我的按钮属性里  怎么没找到owner Draw属性呢?
    不会是我的VC有问题吧!