我有代码如下:
void CEngTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
CDC *pDC = GetDC();
int nOldMapMode = pDC->SetMapMode(MM_LOMETRIC);
CRect rect;
GetClientRect(rect);
pDC->DPtoLP(rect);
CPoint pntOldWndOrg = pDC->SetWindowOrg(rect.left, -rect.bottom);
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
BITMAP imagedata;
bmp.GetBitmap(&imagedata); CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap *pOldBitmap = memDC.SelectObject(&bmp); CRgn rgn;
CRect rc(50, 50, imagedata.bmWidth + 50, imagedata.bmHeight + 50);
pDC->LPtoDP(&rc);
rgn.CreateRoundRectRgn(rc.left, rc.top, rc.right, rc.bottom, 30, 30);
pDC->SelectClipRgn(&rgn, RGN_DIFF); pDC->BitBlt(50, 50, imagedata.bmWidth, imagedata.bmHeight,
&memDC, 0, 0, SRCCOPY);
memDC.SelectObject(pOldBitmap);
pDC->SetWindowOrg(pntOldWndOrg);
pDC->SetMapMode(nOldMapMode);
ReleaseDC(pDC);
}
原想rgn应该与图片在外边界上完全重合,然而结果总是右边和下边少裁剪1到2个象素。哪位大侠可以帮忙看看啊!
void CEngTestView::OnLButtonDown(UINT nFlags, CPoint point)
{
CDC *pDC = GetDC();
int nOldMapMode = pDC->SetMapMode(MM_LOMETRIC);
CRect rect;
GetClientRect(rect);
pDC->DPtoLP(rect);
CPoint pntOldWndOrg = pDC->SetWindowOrg(rect.left, -rect.bottom);
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
BITMAP imagedata;
bmp.GetBitmap(&imagedata); CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap *pOldBitmap = memDC.SelectObject(&bmp); CRgn rgn;
CRect rc(50, 50, imagedata.bmWidth + 50, imagedata.bmHeight + 50);
pDC->LPtoDP(&rc);
rgn.CreateRoundRectRgn(rc.left, rc.top, rc.right, rc.bottom, 30, 30);
pDC->SelectClipRgn(&rgn, RGN_DIFF); pDC->BitBlt(50, 50, imagedata.bmWidth, imagedata.bmHeight,
&memDC, 0, 0, SRCCOPY);
memDC.SelectObject(pOldBitmap);
pDC->SetWindowOrg(pntOldWndOrg);
pDC->SetMapMode(nOldMapMode);
ReleaseDC(pDC);
}
原想rgn应该与图片在外边界上完全重合,然而结果总是右边和下边少裁剪1到2个象素。哪位大侠可以帮忙看看啊!
解决方案 »
- 关闭模式窗口后,如何让父窗口获得焦点?
- 让文本框依次显示
- 关于VC的语法
- 使用自绘按钮时,按钮的响应速度变慢?
- 如何用vc让打印机打印指定文档?这样能打印预览么?
- 各位大哥:怎样在windows2000下,用一个线程打开512个文件或更多啊?
- VC应用程序中怎样加入空格键
- CFrameWnd中,在TOP上已经有两个ControlBar了,如何得到此两个中的任意一个指针?
- 用EnumChildWindows怎么获得控件ID号!!!急救啊
- !!求救:为什么在MFC DLL中调用数据库时一切正常,而在最后退出调用DLL的应用程序时却出错?
- 高分求助一个网页上弹出的软键盘的实现方法(分数等问题解决后全部奉上)
- 类的问题。基础好的过来看看?
&memDC, 0, 0, SRCCOPY);
是经验之谈,还是有官方说法啊?