Я пытаюсь нарисовать прямоугольник в окне 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.
GetClientRect
Эта функция запишет в переданный ей объект прямоугольника, поэтому, вызывая, вы перезаписываете свои конкретные координаты, которые вы установили непосредственно перед вызовом, используя pt и sz.
pt
sz
Как @stakx предложил вам удалить GetClientRect, который получает всю клиентскую область окна и перезаписывает ваш собственный прямоугольник.
Что касается инструкции, он сначала получает всю клиентскую область и сжимаетсяпрямоугольник, чтобы получить прямоугольник для рисования, поэтому GetClientRect требуется там.
Этот сайт поможет вам нарисовать прямоугольник в mfc Dialog-based-application.
http://cboard.cprogramming.com/windows-programming/37788-drawing-mfc.html
http://cboard.cprogramming.com/cplusplus-programming/102490-cplusplus-mfc-rectangle-class.html
Не используйте GetClientRect (). Он заменит ваши предыдущие координаты.