WCF 绘图问题,如何实现在背景图上绘制坐标

新月星雪 2017-06-20 03:40:03
如图所示,我需要将黑色背景部分换成位图。现在遇到问题,当加入位图后,无法显示图上的定位坐标。

void CMappingView::OnDraw(CDC* pDC)
{
/// 获取当前窗体矩形
CRect rect;
GetClientRect(rect);

/// 首先定义一个显示设备对象
CDC MemDC;
MemDC.CreateCompatibleDC(NULL);

/// 定义一个位图对象
CBitmap MemBitmap;
/// 创建位图大小
MemBitmap.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height());
CBitmap *pOldBit = MemDC.SelectObject(&MemBitmap);

/// 画XY轴坐标
DrawCoordinate(&MemDC);

/// 将内存中的图像拷贝到显存中
pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height(), &MemDC, rect.left, rect.top, SRCCOPY);

/// 画XY轴背景图
DrawCameraImage(pDC, &MemDC);

/// 画定位点位
DrawVisualization(&MemDC);
//pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height(), &MemDC, rect.left, rect.top, SRCCOPY);

/// 清空内存
MemDC.SelectObject(pOldBit);
MemBitmap.DeleteObject();
MemDC.DeleteDC();
}

void CMappingView::DrawCameraImage(CDC *pDC, CDC *memDC)
{
CMainFrame *p = (CMainFrame*)AfxGetMainWnd();
CMappingDoc *pDoc = (CMappingDoc*)GetDocument();

HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
"C:\\Windows\\Image_0619140611.bmp",
IMAGE_BITMAP,
0,0,
LR_LOADFROMFILE | LR_CREATEDIBSECTION );
if(hbm == NULL)
{
return;
}
CBitmap* pBitmap = CBitmap::FromHandle(hbm);
BITMAP bmpInfo;
pBitmap->GetBitmap(&bmpInfo);
CBitmap *pOldBitmap = pDC->SelectObject(pBitmap);

memDC->SelectObject(pBitmap);

CRect rect;
GetClientRect(rect);

raxis.left = rect.left + 60;
raxis.right = rect.right - 20;
raxis.top = rect.top + 20;
raxis.bottom = rect.bottom - 60;

int width = raxis.right - raxis.left + 1;
width = width % 4 ? (width + (4 - width % 4)) : width;
raxis.right = raxis.left + width - 1;

pDC->StretchBlt(
r.left,
r.top,
r.Width(),
r.Height(),
memDC,
0,0,
bmpInfo.bmWidth,
bmpInfo.bmHeight,
SRCCOPY);

pBitmap->DeleteObject();
}


目前是将定位放在最后,就会出现两个背景图,如果将定位放在输出背景图前,就会因为背景图拉伸问题,造成定位点偏移。
如果用背景图作为画刷的话,又无法拉伸背景。
试了很多方法都无法解决,请哪位高人指点一下
...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2017-06-20
  • 打赏
  • 举报
回复
上传 Image_0619140611.bmp
新月星雪 2017-06-20
  • 打赏
  • 举报
回复
没人回复吗
新月星雪 2017-06-20
  • 打赏
  • 举报
回复

15,979

社区成员

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

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