CStatic 上显示图片,用CBitmap 显示不出图片

aerospace 2008-11-27 04:56:07
CBitmap hBitmap;
int ntmp = hBitmap.LoadBitmap(IDB_TEST_BITMAP);
HBITMAP hHleBmp;

// hHleBmp =LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_TEST_BITMAP));


hHleBmp = (HBITMAP)hBitmap;

m_Pic.ModifyStyle(0xF,SS_BITMAP);
m_Pic.SetBitmap(hHleBmp);

m_Pic 为Static 对象, 为什么显示不出图片呢? 用注释掉的代码可以显示?
...全文
260 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aerospace 2008-11-27
  • 打赏
  • 举报
回复
设置成全局变量是可以的,刚才搞错了。
aerospace 2008-11-27
  • 打赏
  • 举报
回复
Tinary3v0, 的方法可以。
奇怪,但是我把它作为全局变量为什么不可以呢?

原因应该 就是 goodowxy 的解释
qt_freelancer 2008-11-27
  • 打赏
  • 举报
回复
你那是函数的局部变量,过了这个函数作用域,变量释放
你需要判断句柄是否有效方可加载!
Tinary3v0 2008-11-27
  • 打赏
  • 举报
回复
下面两个方法都是可以的:我是放在OnInitDialog()里面的。

CBitmap* hBitmap = new CBitmap(); 
hBitmap->LoadBitmap( IDB_TEST_BITMAP);

HBITMAP hHleBmp;
hHleBmp = (HBITMAP)(*hBitmap);

m_Pic.ModifyStyle(0xF,SS_BITMAP);
m_Pic.SetBitmap( hHleBmp );


HBITMAP hHleBmp = ::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_TEST_BITMAP));
m_Pic.ModifyStyle(0xF,SS_BITMAP);
m_Pic.SetBitmap(hHleBmp);
aerospace 2008-11-27
  • 打赏
  • 举报
回复
还是不行啊?
Chivalry 2008-11-27
  • 打赏
  • 举报
回复
把CBitmap hBitmap;写成全局变量或类的成员变量试试看

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧