如何从CBitmap对象获得HBITMAP?
我在对话框上放置了一个CStatic,关联了一个m_pic变量
使用如下代码可以正常显示图片:
HBITMAP hmap=::LoadBitmap(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDB_BITMAP1));
m_pic.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
m_pic.SetBitmap(hmap);
以下代码均不能显示图片:
1.
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
m_pic.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
m_pic.SetBitmap((HBITMAP)bitmap);
2.
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
m_pic.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
m_pic.SetBitmap((HBITMAP)bitmap.m_hObject);
3.
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
m_pic.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
m_pic.SetBitmap((HBITMAP)(bitmap.m_hObject));
4.
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
m_pic.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
m_pic.SetBitmap((HBITMAP)&bitmap);
5.
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
m_pic.ModifyStyle(0xF,SS_BITMAP|SS_CENTERIMAGE);
HBITMAP hbit=(HBITMAP)bitmap;
m_pic.SetBitmap(hbit);
因此我分析原因就是无法利用CBitmap对象获取到HBITMAP,导致SetBitmap()失败,请问各位高手,为何用API函数获取的HBITMAP就正常,而采用CBitmap的operator HBITMAP就错误呢?只要大家能写出一段用CBitmap类的方法使得我能够SetBitmap
的,立即给分。注意:不能使用API函数的LoadBitmap