MFC加载图片显示不出来,是怎么回事呢?

蜗牛快走 2013-02-01 08:06:10
各位好,我在创建的MFC对话框程序的OnInitDialog()函数中添加加载图片的代码,但是加载不到图片,是怎么回事呢,求助~~~
代码如下:

SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE) | WS_SIZEBOX);
hBitmap = (HBITMAP)LoadImage(NULL,"Gird.bmp",IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
if(hBitmap == NULL)
{
MessageBox("Can't find the picture named Gird.bmp");
exit(0);
}

HDC hdc;
hdc = ::GetDC(m_hWnd);
//CClientDC dc(this);
s_hdcMem = CreateCompatibleDC(hdc);
SelectObject(s_hdcMem, hBitmap);
::ReleaseDC(m_hWnd, hdc);
// 得到位图信息
GetObject(hBitmap, sizeof(s_bm), &s_bm);
...全文
1006 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜗牛快走 2013-02-02
  • 打赏
  • 举报
回复
好的谢谢~~
sumos 2013-02-02
  • 打赏
  • 举报
回复
因为在OnInitDialog执行之后,在显示窗口之前,Onpaint此时调用,就会覆盖你之前的所有绘制。
文西哟666 2021-07-31
  • 举报
回复
@sumos 这个是解决问题的答案,显示图片要在Onpaint后调用,防止覆盖之前的所有绘制
蜗牛快走 2013-02-02
  • 打赏
  • 举报
回复
引用 3 楼 zhoujielunzhimi 的回复:
HDC hdc; hdc = ::GetDC(m_hWnd); //CClientDC dc(this); s_hdcMem = CreateCompatibleDC(hdc); SelectObject(s_hdcMem, hBitmap); ::ReleaseDC(m_hWnd, hdc); // 得到位图信息 GetObject……
在初始化函数中为什么不行呢,我想了解一下
长尾巴的悟空 2013-02-02
  • 打赏
  • 举报
回复
::ReleaseDC(m_hWnd, hdc); 换到析构函数看看
蜗牛快走 2013-02-02
  • 打赏
  • 举报
回复
引用 3 楼 zhoujielunzhimi 的回复:
HDC hdc; hdc = ::GetDC(m_hWnd); //CClientDC dc(this); s_hdcMem = CreateCompatibleDC(hdc); SelectObject(s_hdcMem, hBitmap); ::ReleaseDC(m_hWnd, hdc); // 得到位图信息 GetObject……
我是想让对话框加载一个图片,但是没有效果
sumos 2013-02-02
  • 打赏
  • 举报
回复
HDC hdc; hdc = ::GetDC(m_hWnd); //CClientDC dc(this); s_hdcMem = CreateCompatibleDC(hdc); SelectObject(s_hdcMem, hBitmap); ::ReleaseDC(m_hWnd, hdc); // 得到位图信息 GetObject(hBitmap, sizeof(s_bm), &s_bm); 这是做什么?? 这些绘图操作放到 onpaint中
蜗牛快走 2013-02-01
  • 打赏
  • 举报
回复
消息框没有出来
jimette 2013-02-01
  • 打赏
  • 举报
回复
MessageBox("Can't find the picture named Gird.bmp"); 这个响应了么 在后面加上getlasterror!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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