【紧急求救】 VC++ 绘图 ,编译和运行没问题,就是不显示图片,请高手帮忙,不甚感激! 5

CRectrect;m_static1.GetClientRect(&rect);//贴上画布CDCm_memDC,*pDC;CBitmapm_memBmp,*m_pOl... CRect rect;
m_static1.GetClientRect(&rect);

// 贴上画布
CDC m_memDC ,*pDC;
CBitmap m_memBmp, * m_pOldBitmap;

pDC = this->GetDC();
m_memDC.CreateCompatibleDC(pDC);
m_memBmp.CreateCompatibleBitmap(pDC,rect.right-1, rect.bottom-36);

m_pOldBitmap = m_memDC.SelectObject(&m_memBmp);
m_memDC.FillSolidRect(0,0,rect.right,rect.bottom,RGB(150,150,150));

// 贴图
USES_CONVERSION;
LPWSTR wStr = A2W("abc.bmp");
Image img(wStr);

//Graphics g(this->m_hWnd); //这句可以显示图片
Graphics g(m_memDC.GetSafeHdc()); //????问题就这句无任何显示

g.DrawImage(&img,18,22,img.GetWidth() , img.GetHeight() );

// 恢复
m_memDC.SelectObject(m_pOldBitmap);
展开
 我来答
百度网友571c60f
2011-08-30 · 超过14用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:54.3万
展开全部
Graphics g(this->m_hWnd)
this->m_hWnd这个是返回窗口的句柄,
m_memDC.GetSafeHdc()这个虽然是句柄,是当前显示器兼容的内存设备的句柄
两者虽然都是句柄,单指的不是一回事啊,编译只管类型,类型一致当然不报错了.
GDI编程我是不会了,你可以看看这篇文章
http://blog.csdn.net/duanhong19881021/article/details/5995919
Graphics(HDC hdc, HANDLE hdevice); // 用于在指定设备上绘制图形
你可以改成下面的语句试试看:
Graphics g(pDC,m_memDC.GetSafeHdc());
另外Graphics g(this->m_hWnd);可以直接用阿,为什么要改呢?
这一句就是在当前窗口显示图形,比你用设备的句柄更直接.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式