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

voidCTest1View::OnDraw(CDC*pDC){CTest1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TOD... 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);}
添加的代码如上所示,求指点
为什么不显示图片呢
展开
 我来答
bhtzu
2013-08-19 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4109万
展开全部
OnDraw里面Create一个临时CStatic,LoadImage一个临时变量句柄,整体逻辑的错误。

OnDraw是每次界面刷新调用的函数,应该尽量优化并只放置界面刷新代码;句柄和控件不能重复创建,应该是类成员变量,并且在初始化代码中创建;位图句柄,用相对路径文件名不安全,不推荐。
问题很多。。。建议先了解和熟悉MFC的运行机制,至少,明白几个主要功能函数意义以及C++基础变量概念,不能这样生搬硬套
任明星Ming
2013-08-20 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1136万
展开全部
你的CStatic startPics是个函数局部变量,在OnDraw执行完后,自动被销毁了。请将其声明为类的成员变量,这样才不会被自动销毁,才能看到图片。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式