當前位置:歷史故事大全網 - 故事大全 - mfc 给button加载bitmap加载不上 使用代码在下面

mfc 给button加载bitmap加载不上 使用代码在下面

首先你的CBitmap控件调BS_BITMAP样式

((CButton*)GetDlgItem(IDC_BUTTON_TEST))-gt;ModifyStyle(0, BS_BITMAP);

另外,你的m_bmp不能随意调用,默认情况下CBitmap的父类CGdiObj解析结构的时候会删除它所持有的HGDIOBJ对象。用Detach将GDI对象和CGdiObj对象分离

HBITMAP hBitmap = (HBITMAP)m_bmp .Detach();

合起来就是

CBitmap m_bmp;

m_bmp.LoadBitmap(IDB_BITMAP1);

HBITMAP hBitmap = ( HBITMAP)m_bmp.Detach();

((CButton*)GetDlgItem(IDC_BUTTON_TEST))-gt;ModifyStyle(0, BS_BITMAP);

((CButton*)GetDlgItem(IDC_BUTTON_TEST) ))-gt;SetBitmap(hBitmap);

注意:这样的话你的这个hBitmap对象如果没有注意自己释放,就发生内存泄漏了。如果这个图片在整个程序中都要用到,这样写没问题,只要你不要每次用到的时候都来一次LoadBitmap就好。每次都来LoadBitmap会不会发生泄漏、泄漏会有多严重,我现在不会了。目测会泄漏知道而且挺严重

  • 上一篇:國內伊維菌素上市公司有哪些?
  • 下一篇:工作證設計模板怎麽做
  • copyright 2024歷史故事大全網