19,469
社区成员
发帖
与我相关
我的任务
分享
//设置映射模式和坐标系
pDC->SetMapMode(MM_ISOTROPIC);
pDC->SetWindowExt(rc.Width(),rc.Height());
pDC->SetViewportExt(rc.Width(),-rc.Height());
pDC->SetViewportOrg(50,rc.Height()-50);
MemDC->SetMapMode(MM_ISOTROPIC); //内存DC中的映射模式
MemDC->SetWindowExt(rc.Width(),rc.Height());
MemDC->SetViewportExt(rc.Width(),-rc.Height());
MemDC->SetViewportOrg(50,rc.Height()-50);
MemDC->SetBkMode(TRANSPARENT); //透明背景
MemDC->SetTextColor(RGB(0,0,0)); //黑色
if(isOpen)
{
}
else
{
MemDC->Rectangle(0,0,50,50);
MemDC->BeginPath();
MemDC->MoveTo(0,0);
MemDC->LineTo(50,0);
MemDC->LineTo(25,50);
MemDC->LineTo(0,0);
MemDC->EndPath();
CRgn rgn;
rgn.CreateFromPath(MemDC);
MemDC->InvertRgn(&rgn);
}
pDC->BitBlt(-50,-50,rc.Width(),rc.Height(),MemDC,-50,-50,SRCCOPY);
void OnDraw2(CDC *pDstDC, int nWidth, int nHeight)
{
CDC memDC, *pDC = &memDC;
pDC->CreateCompatibleDC(pDstDC);
pDC->SaveDC();
CBitmap memBmp;
memBmp.CreateCompatibleBitmap(pDstDC, nWidth, nHeight);
pDC->SelectObject(&memBmp);
pDC->FillSolidRect(0, 0, nWidth, nHeight, RGB(255, 255, 255)); //填充背景色
{
pDC->SaveDC();
int iMapMode = pDC->SetMapMode(MM_ISOTROPIC);
CSize wndExt = pDC->SetWindowExt(nWidth, nHeight);
CSize vptExt = pDC->SetViewportExt(min(nWidth, nHeight), -min(nWidth, nHeight));
CPoint vptOrg = pDC->SetViewportOrg(nWidth/2, nHeight/2);
pDC->SetBkMode(TRANSPARENT);
CPen linePen(PS_SOLID, 2, RGB(255, 0, 0));
pDC->SelectObject( &linePen );
pDC->MoveTo(0, 0);
pDC->LineTo(400, 0);
pDC->MoveTo(0, 0);
pDC->LineTo(0, 400);
pDC->MoveTo(0, 0);
pDC->LineTo(300, 300);
pDC->RestoreDC(-1);
}
pDstDC->BitBlt(0, 0, nWidth, nHeight, pDC, 0, 0, SRCCOPY);
//结束清理
pDC->RestoreDC(-1);
}
MemDC->Rectangle(0,0,50,50);
CBrush brush1;
brush1.CreateSolidBrush(RGB(0,0,0));
MemDC->SelectObject(&brush1); //把画刷选择到设备描述表中
MemDC->BeginPath();
MemDC->MoveTo(0,0);
MemDC->LineTo(50,0);
MemDC->LineTo(25,50);
MemDC->LineTo(0,0);
MemDC->EndPath();
MemDC->FillPath();