在MFC窗口中 使用SetBitmap却不显示位图

void CTest1View::OnDraw(CDC* pDC)
{
CTest1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
HBITMAP startpic;
CStatic startPics;
startpic=(HBITMAP)::LoadImage(NULL,"DSC02330.bmp",IMAGE_BITMAP,110,50,LR_LOADFROMFILE|LR_DEFAULTSIZE);

startPics.Create(NULL,WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE,CRect(500,200,500+110,200+50),this,NULL);
startPics.SetBitmap(startpic);}
添加的代码如上所示,求指点
为什么不显示图片呢

OnDraw里面Create一个临时CStatic,LoadImage一个临时变量句柄,整体逻辑的错误。

OnDraw是每次界面刷新调用的函数,应该尽量优化并只放置界面刷新代码;句柄和控件不能重复创建,应该是类成员变量,并且在初始化代码中创建;位图句柄,用相对路径文件名不安全,不推荐。
问题很多。。。建议先了解和熟悉MFC的运行机制,至少,明白几个主要功能函数意义以及C++基础变量概念,不能这样生搬硬套
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-20
你的CStatic startPics是个函数局部变量,在OnDraw执行完后,自动被销毁了。请将其声明为类的成员变量,这样才不会被自动销毁,才能看到图片。本回答被提问者采纳
相似回答