Прямоугольник в МФЦ - PullRequest
       0

Прямоугольник в МФЦ

1 голос
/ 19 декабря 2011

Я пытаюсь нарисовать прямоугольник в окне 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);  

Ответы [ 3 ]

2 голосов
/ 19 декабря 2011

Сбросить вызов до GetClientRect.

Эта функция запишет в переданный ей объект прямоугольника, поэтому, вызывая, вы перезаписываете свои конкретные координаты, которые вы установили непосредственно перед вызовом, используя pt и sz.

1 голос
/ 19 декабря 2011

Как @stakx предложил вам удалить GetClientRect, который получает всю клиентскую область окна и перезаписывает ваш собственный прямоугольник.

Что касается инструкции, он сначала получает всю клиентскую область и сжимаетсяпрямоугольник, чтобы получить прямоугольник для рисования, поэтому GetClientRect требуется там.

0 голосов
/ 19 декабря 2011

Этот сайт поможет вам нарисовать прямоугольник в 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 (). Он заменит ваши предыдущие координаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...