简体   繁体   English

如何填充矩形(C ++,MFC)

[英]How to fill rectangle (c++, mfc)

I need to fill the part of "Rectangle"(diagonall filling) 我需要填写“矩形”部分(对角线填充) 在此处输入图片说明 (like on this image). (例如这张图片)。 How to do it on mfc ? 如何在mfc上执行此操作? Sorry for my bad english! 对不起,我的英语不好!

void CKonokhovView::OnLButtonUp(UINT nFlags, CPoint point)
{
if (m_Dragging){
    m_Dragging = 0;
    ::ReleaseCapture();
    ::ClipCursor(NULL);
    CKonokhovDoc* pDoc = GetDocument();
    CClientDC ClientDC(this);
    CPen pen;
    pen.CreatePen(PS_SOLID, 1, pDoc->docColor);
    ClientDC.SelectObject(&pen);
    ClientDC.SetROP2(R2_NOT);
    ClientDC.Rectangle(m_PointOrigin.x, m_PointOrigin.y, m_PointOld.x,      m_PointOld.y);
    ClientDC.SetROP2(R2_COPYPEN);
    CBrush* oldBrush = ClientDC.SelectObject(&nullBrush);
    ClientDC.Rectangle(m_PointOrigin.x, m_PointOrigin.y, point.x, point.y);

    pDoc->AddLine(m_PointOrigin.x, m_PointOrigin.y, point.x, point.y);
    ClientDC.SelectObject(&oldBrush);


}

You can use CDC::Polygon , which is a wrapper for Polygon API 您可以使用CDC :: Polygon ,它是Polygon API的包装器

Example: 例:

CRect rc(0, 0, 100, 100);
CPoint points[3];
points[0] = CPoint(rc.left, rc.top);
points[1] = CPoint(rc.right, rc.top);
points[2] = CPoint(rc.left, rc.bottom);

ClientDC.Polygon(points, 3);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM