【发布时间】:2012-01-23 12:12:50
【问题描述】:
我尝试使用以下说明在 mfc 窗口上绘制一个矩形:http://msdn.microsoft.com/en-US/library/8w4fzfxf%28v=VS.80%29.aspx。尽管我尝试了很多,但矩形出现在窗口的边框上,覆盖了整个窗口。函数 OnDraw(CDC* pDC) 中的以下代码有什么问题?如何在窗口中绘制具有特定坐标的 Rectangle?
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
CPen* pOldPen = pDC->SelectObject(&penBlack);
CPoint pt(10, 10);
CSize sz(100, 50);
CRect myRect(pt, sz);
GetClientRect(&myRect);
pDC->Rectangle(&myRect);
【问题讨论】:
-
你为什么打电话给
GetClientRect?看来此调用会覆盖您之前在myRect中设置的坐标。 -
你一定是对的,但是说明书里有建议。
-
您没有完全复制说明。您刚刚以随机顺序复制和粘贴部分。它检索客户矩形,然后在每个方向将其缩小 20 个像素,然后绘制 那个 矩形。