void CMainWnd::OnPaint()
{
CPaintDC dc(this); // получаем контекст устройства
dc.Rectangle(10, 10, 150, 150); // рисуем прямоугольник
}
MFC обновление окна
Пишу программу с ипользованием MFC, но есть проблемка. Когда что-то нарисую( например, на клавишу 1 рисуется квадрат, а на 2-круг и т.д.), а потом сверну(разверну) окно, то всё исчезает. Как можно сделать, чтобы ничего не исчезало?
Или попробуй рисовать свои круги при каждом отображении формы
Не знаю,как в MFC,но есть такая штука,как контекст устройства.Так вот,при разворачивании окна оный перерисовывается,поэтому вам надо либо а)как посоветовали,в обработчике событий перерисовки заново рисовать круги,б)т.к. при большом количестве объектов перерисовывать всё–дело геморное,создать контекст в памяти и потом просто выводить его
Цитата: @pixo $oft
Не знаю,как в MFC,но есть такая штука,как контекст устройства.Так вот,при разворачивании окна оный перерисовывается,поэтому вам надо либо а)как посоветовали,в обработчике событий перерисовки заново рисовать круги,б)т.к. при большом количестве объектов перерисовывать всё–дело геморное,создать контекст в памяти и потом просто выводить его
Знать бы, как им пользоваться
Код:
А эта функция заставит окно перерисоваться, когда надо нам, например, нажатие клавиши или щелчек кнопкой мыши - функцию нужно вызывать в обработчике соответствующего сообщения
Код:
void CWnd::InvalidateRect(LPRECT pRegion,
BOOL EraseBackground = TRUE);
BOOL EraseBackground = TRUE);
Цитата: MegaMozg
Весь код рисования должен находиться в обработчике OnPaint:
А эта функция заставит окно перерисоваться, когда надо нам, например, нажатие клавиши или щелчек кнопкой мыши - функцию нужно вызывать в обработчике соответствующего сообщения
Код:
void CMainWnd::OnPaint()
{
CPaintDC dc(this); // получаем контекст устройства
dc.Rectangle(10, 10, 150, 150); // рисуем прямоугольник
}
{
CPaintDC dc(this); // получаем контекст устройства
dc.Rectangle(10, 10, 150, 150); // рисуем прямоугольник
}
А эта функция заставит окно перерисоваться, когда надо нам, например, нажатие клавиши или щелчек кнопкой мыши - функцию нужно вызывать в обработчике соответствующего сообщения
Код:
void CWnd::InvalidateRect(LPRECT pRegion,
BOOL EraseBackground = TRUE);
BOOL EraseBackground = TRUE);
В Вашем сообщении по делу я ничего не нашел, т.к. это итак уже использую
Цитата: m9yt
т.к. это итак уже использую
хреново используешь