如何使用mfc中的ondraw 在picture显示图片

eradifa 2017-04-15 03:42:17
加精
目前遇到的问题,是在多线程中调用picture控件的GetDC(),导致整个作业系统屏幕整个不显示
		CImage img ;
if (SUCCEEDED(img.Load(pStream)))
{
CRect rect;
CWnd *pWnd = GetDlgItem(IDC_PIC);
CDC *pDC = pWnd->GetDC();
pDC->SetStretchBltMode(STRETCH_HALFTONE); //保持图片不失真
img.BitBlt(pDC->m_hDC, 0, 0, SRCCOPY);
ReleaseDC(pDC);

}



是不是能把上面的代码写在mfc中的OnDraw(CDC* pDC)
可是我看OnDraw(CDC* pDC)的代码,只有一个CDC* pDC参数...
希望这样取getdc别再系统崩溃了
还是有其他更好得解决方案请大神帮忙解决.....
...全文
2822 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
nettman 2017-05-03
  • 打赏
  • 举报
回复
flyhigh 2017-04-29
  • 打赏
  • 举报
回复
CImage img ;
if (SUCCEEDED(img.Load(pStream)))
{
    CRect rect;
    CWnd *pWnd = GetDlgItem(IDC_PIC);
    CDC *pDC = pWnd->GetDC();
    pDC->SetStretchBltMode(STRETCH_HALFTONE); //保持图片不失真  
    img.BitBlt(pDC->m_hDC, 0, 0, SRCCOPY);
    pWnd->ReleaseDC(pDC);  //DC从哪里GET就要从哪里release
     
}
qq_29946505 2017-04-26
  • 打赏
  • 举报
回复
..........
hugh_z 2017-04-19
  • 打赏
  • 举报
回复
666666666666666
qq_38392081 2017-04-19
  • 打赏
  • 举报
回复
过来学习一下
rzxtest005 2017-04-19
  • 打赏
  • 举报
回复
过来学习一下
hugh_z 2017-04-18
  • 打赏
  • 举报
回复
6666666666666
AndroLover 2017-04-18
  • 打赏
  • 举报
回复
学习了 谢谢
nettman 2017-04-18
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
weixin_38375185 2017-04-18
  • 打赏
  • 举报
回复
6666666666666
xiaowkkll 2017-04-17
  • 打赏
  • 举报
回复
定义一个全局变量来保存位图数据,或者定义一个对话框类的成员变量来保存位图数据
cattpon 2017-04-17
  • 打赏
  • 举报
回复
learning~
hugh_z 2017-04-17
  • 打赏
  • 举报
回复
666666666666666
hugh_z 2017-04-16
  • 打赏
  • 举报
回复
6666666666666
cattpon 2017-04-16
  • 打赏
  • 举报
回复
learning~
ljheee 2017-04-16
  • 打赏
  • 举报
回复
worldy 2017-04-15
  • 打赏
  • 举报
回复
IDC_PIC导出一个类,在其OnPaint里绘画
eradifa 2017-04-15
  • 打赏
  • 举报
回复
引用 4 楼 cvbtvbwu 的回复:
[quote=引用 3 楼 eradifa 的回复:] [quote=引用 2 楼 cvbtvbwu 的回复:] 通过发送消息到对话框,主对话框执行绘制图片的函数吧,这样应该不会崩溃 不行找我
我的图片是从recv来的,已有位图数据,主对话框执行绘制图片,把位图数据当成参数 用sendmessage发送 我是用的mfc 基於对话框,所以没有ondraw函数,请大神指点迷津一下[/quote] 对话框用onPaint,另外那个DC可以在对话框初始化就时候就赋值好,不用每次都GetDC[/quote] 方便给个qq吗
eradifa 2017-04-15
  • 打赏
  • 举报
回复
引用 4 楼 cvbtvbwu 的回复:
[quote=引用 3 楼 eradifa 的回复:] [quote=引用 2 楼 cvbtvbwu 的回复:] 通过发送消息到对话框,主对话框执行绘制图片的函数吧,这样应该不会崩溃 不行找我
我的图片是从recv来的,已有位图数据,主对话框执行绘制图片,把位图数据当成参数 用sendmessage发送 我是用的mfc 基於对话框,所以没有ondraw函数,请大神指点迷津一下[/quote] 对话框用onPaint,另外那个DC可以在对话框初始化就时候就赋值好,不用每次都GetDC[/quote] 要怎麽传参数给onPaint,我有已经有位图数据了,求代码
加载更多回复(5)

19,468

社区成员

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

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