Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Помогите с OnPaint и CPaintDC


Автор: servernyOlen 14.5.2006, 14:48
Упрощенно задача звучит так - в зависимости от нажатой на диалоге кнопки (значение хранится перем btnPressed ) рисуется соответствующая фигура. Создаю проект диалога, добавляю две кнопки и переменную.

Переписываю OnPaint следующим образом:

void CTestDlg::OnPaint() 
{
if ( btnPressed == 1 ) 
{
CPaintDC dc(this);
dc.Ellipse(30, 30, 150, 70);
} else if ( btnPressed == 2 )
{
CPaintDC dc(this);
dc.Ellipse(170, 30, 290, 70);
};
}

При нажатии любой из двух кнопок выводится соответствующая фигура и так и остается на окне, что бы в дальнейшем я ни нажимал. 
Подозреваю, что надо как-то очищать окно или контекст, но под рукой нету ни одного толкового учебника, диск с MSDN умер и надо срочно. 

Автор: powerOn 14.5.2006, 15:02
Нет MSDN?  smile 
http://msdn2.microsoft.com/ 

Автор: servernyOlen 15.5.2006, 00:15

Тема закрыта, добрые люди подсказали, что надо было добавить Invalidate() в обработчики кнопок. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)