为啥下边代码没有效果?

树先生1991 2011-05-12 05:41:34

GetDlgItem(IDC_AREA1)->GetClientRect(&Area1_rect);//对话框上图片控件的大小

CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);

BITMAP bmpinfo;
bmp.GetBitmap(&bmpinfo);

CDC* dc_area1=GetDlgItem(IDC_AREA1)->GetDC();//获取图片控件的CDC
CDC memdc;
memdc.CreateCompatibleDC(dc_area1);
memdc.SelectObject(bmp);

dc_area1->StretchBlt(Area1_rect.left,Area1_rect.top,Area1_rect.Width(),Area1_rect.Height(),&memdc,0,0,bmpinfo.bmWidth,bmpinfo.bmHeight,SRCCOPY);//为什么最后没有把位图输出到图片控件上呢

...全文
155 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2011-05-12
  • 打赏
  • 举报
回复
GDI资源没有释放?GetDC没有ReleaseDC,CreateCompatibleDC没有DeleteDC
树先生1991 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 pop1210 的回复:]

楼主骗人,害我试,分明可以!
[/Quote]

真TM怪了。我现在也可以了。。
pop1210 2011-05-12
  • 打赏
  • 举报
回复
楼主骗人,害我试,分明可以!
树先生1991 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 gongdiwudu 的回复:]

先放在按钮里试,不是个大错误
[/Quote]

不知道怎么回事,相同的代码,我在vs2008里运行正常,但是在vc6里图片闪了一下就没了
无水先生 2011-05-12
  • 打赏
  • 举报
回复
先放在按钮里试,不是个大错误
树先生1991 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 gwlhw 的回复:]

你把这段代码写在那了.有没有发送重绘
[/Quote]

放在OnPaint中了
gwlhw 2011-05-12
  • 打赏
  • 举报
回复
你把这段代码写在那了.有没有发送重绘
树先生1991 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nicky918 的回复:]

楼主没有MEMBITMAP。

CBitmap cbmp;
cbmp.CreateCompatibleBitmap(pDC,_r.Width(),_r.Height());
this->memDC.SelectObject(&cbmp);

图片再另外想办法画进去
[/Quote]


CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);

BITMAP struct_bmp;
bmp.GetBitmap(&struct_bmp);

CDC memdc;
memdc.CreateCompatibleDC(pDC);
memdc.SelectObject(bmp);

CRect rect;
GetClientRect(&rect);
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),&memdc,0,0,struct_bmp.bmWidth,struct_bmp.bmHeight,SRCCOPY);

memdc.DeleteDC();
bmp.DeleteObject();


这是我以前写的,能够在对话框上显示位图,但是现在用同样的方法,为啥就不行了
汤圆甜筒 2011-05-12
  • 打赏
  • 举报
回复
楼主没有MEMBITMAP。

CBitmap cbmp;
cbmp.CreateCompatibleBitmap(pDC,_r.Width(),_r.Height());
this->memDC.SelectObject(&cbmp);

图片再另外想办法画进去
树先生1991 2011-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 panasonic0804 的回复:]

C/C++ code
memdc.SelectObject(bmp);


改为
C/C++ code
memdc.SelectObject(&bmp);
[/Quote]

没用,我都试过了
panasonic0804 2011-05-12
  • 打赏
  • 举报
回复
memdc.SelectObject(bmp);


改为
memdc.SelectObject(&bmp);


15,979

社区成员

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

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