MFC中的矩形

Rectangle in MFC

本文关键字:MFC      更新时间:2023-10-16

我尝试在mfc窗口上绘制一个矩形,使用指令:http://msdn.microsoft.com/en-US/library/8w4fzfxf%28v=VS.80%29.aspx。尽管我尝试了很多,矩形还是出现在窗口的边缘,覆盖了整个窗口。以下代码在函数OnDraw(CDC* pDC)中的问题是什么?如何在窗口中绘制具有特定坐标的矩形?

 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的呼叫

该函数将写入传递给它的矩形对象,因此通过调用,您将覆盖您在使用ptsz调用之前设置的特定坐标。

正如@stakx建议的,您应该删除GetClientRect,它获得整个窗口客户端区域,并覆盖您自己的矩形。

对于指令,它首先获得整个客户端区域,并缩小矩形以获得要绘制的矩形,因此这里需要GetClientRect

这个站点将帮助您在基于mfc对话框的应用程序中绘制矩形。

http://cboard.cprogramming.com/windows-programming/37788-drawing-mfc.html

http://cboard.cprogramming.com/cplusplus-programming/102490-cplusplus-mfc-rectangle-class.html

不要使用GetClientRect()。它会覆盖你之前的坐标

相关文章:
  • 没有找到相关文章