【紧急求救】 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); 展开
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); 展开
展开全部
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);可以直接用阿,为什么要改呢?
这一句就是在当前窗口显示图形,比你用设备的句柄更直接.
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);可以直接用阿,为什么要改呢?
这一句就是在当前窗口显示图形,比你用设备的句柄更直接.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询