我想在 按钮上 放置一盒 位图,但是 不知道 为什么失败了,编译通过执行不了!我的程序 是这样的
全局变量:BITMAP m_tagBitmap;
 CBitmap m_iBitmap;
           CDC m_dcPaint;
在OnIndialog中的程序 如下:
        BOOL bRet = m_iBitmap.LoadBitmap(MAKEINTRESOURCE(IDB_BACKMAIN));

    if ( TRUE == bRet )
    {
        // Get Main Picture's Bitmap Struct
        bRet = m_iBitmap.GetBitmap(&m_tagBitmap);

    }

CPaintDC iPaintDC(this);
    CRect rectClient;
    BITMAP tagBmp;
    this->GetClientRect(rectClient);
    m_iBitmap.GetBitmap(&tagBmp);

    
    m_dcPaint.CreateCompatibleDC(&iPaintDC);
    m_dcPaint.SelectObject(&m_iBitmap);
//RECT rect;


CDC * pDC = m_btn.GetDC();
pDC->BitBlt(0, 0, tagBmp.bmWidth, tagBmp.bmHeight, &m_dcPaint, 0, 0,  SRCCOPY );

解决方案 »

  1.   

    直接用CBitmapButton不就行了
      

  2.   

    CBitmapButton是一个MFC内置的按钮类,提供图片按钮的功能,并且支持在不同状态下显示不同图片。由于使用方法比较简单,比CButton更美观,比其它的第三方Button类更简洁,因此博鸽的下一版本将要使用它。博鸽网的地址是:http://www.blogdove.comCBitmapButton的简易攻略如下:1.在MFC Dialog工程中,在一个Dialog中添加一个按钮,设置ID为IDC_BUTTON_TEST, Caption为BUTTON_TEST,并且把Style中的Owner Draw属性选上。(注意Caption命名和ID命名的关系)2.添加按钮的图片到资源中假设图片为以下几个:test_up.bmp  正常状态时的按钮图片test_down.bmp 鼠标按下时的按钮图片test_focused.bmp 鼠标点击过后的按钮图片test_disable.bmp 按钮失效后的图片则分别设置其ID为:(注意,一定要左右都带双引号)"BUTTON_TESTU""BUTTON_TESTD""BUTTON_TESTF""BUTTON_TESTS"3. 在Dialog对应的代码文件中,修改button的类型为CBitmapButton。比如:CBitmapButton m_btnTest;在OnInitDialog()中添加加载图片的方法m_btnTest.AutoLoad(IDC_BUTTON_TEST, this);编译,运行即可。
      

  3.   

    CButton::SetBitmap(HBITMAP hBitmap);
      

  4.   

    1、在.h中
    CBitmapButton m_add1;
    2、在.cpp中
    DDX_Control(pDX, IDC_BUTTON6, m_add1);3、在OnInitDialog()中
    m_add1.LoadBitmaps(IDB_ADDRESS,NULL,NULL,NULL); //钮加载图片
      

  5.   

    http://blog.cfan.com.cn/html/57/28957-152469.html
      

  6.   

    CButton::SetBitmap(HBITMAP hBitmap); 
    这种方法是可以的。也可以像2楼那样,挺方便
      

  7.   

    如果只是简单的放置一个图片在按钮上建议用CBitmapButton
    用法上面已经很详细了
    如果还需要其他的建议重绘,自己派生一个新类,重载OnDraw()函数