Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

MFC обновление окна

44K
20 сентября 2010 года
m9yt
25 / / 27.02.2010
Привет всем.
Пишу программу с ипользованием MFC, но есть проблемка. Когда что-то нарисую( например, на клавишу 1 рисуется квадрат, а на 2-круг и т.д.), а потом сверну(разверну) окно, то всё исчезает. Как можно сделать, чтобы ничего не исчезало?
57K
20 сентября 2010 года
rusek
16 / / 12.07.2010
Не сворачивать окно:D

Или попробуй рисовать свои круги при каждом отображении формы
7
20 сентября 2010 года
@pixo $oft
3.4K / / 20.09.2006
Не знаю,как в MFC,но есть такая штука,как контекст устройства.Так вот,при разворачивании окна оный перерисовывается,поэтому вам надо либо а)как посоветовали,в обработчике событий перерисовки заново рисовать круги,б)т.к. при большом количестве объектов перерисовывать всё–дело геморное,создать контекст в памяти и потом просто выводить его
44K
20 сентября 2010 года
m9yt
25 / / 27.02.2010
Цитата: @pixo $oft
Не знаю,как в MFC,но есть такая штука,как контекст устройства.Так вот,при разворачивании окна оный перерисовывается,поэтому вам надо либо а)как посоветовали,в обработчике событий перерисовки заново рисовать круги,б)т.к. при большом количестве объектов перерисовывать всё–дело геморное,создать контекст в памяти и потом просто выводить его



Знать бы, как им пользоваться

394
21 сентября 2010 года
MegaMozg
317 / / 18.03.2006
Весь код рисования должен находиться в обработчике OnPaint:

 
Код:
void CMainWnd::OnPaint()
{
    CPaintDC dc(this);                     // получаем контекст устройства
    dc.Rectangle(10, 10, 150, 150);   // рисуем прямоугольник
}


А эта функция заставит окно перерисоваться, когда надо нам, например, нажатие клавиши или щелчек кнопкой мыши - функцию нужно вызывать в обработчике соответствующего сообщения
 
Код:
void CWnd::InvalidateRect(LPRECT pRegion,
            BOOL EraseBackground = TRUE);
44K
21 сентября 2010 года
m9yt
25 / / 27.02.2010
Цитата: MegaMozg
Весь код рисования должен находиться в обработчике OnPaint:

 
Код:
void CMainWnd::OnPaint()
{
    CPaintDC dc(this);                     // получаем контекст устройства
    dc.Rectangle(10, 10, 150, 150);   // рисуем прямоугольник
}


А эта функция заставит окно перерисоваться, когда надо нам, например, нажатие клавиши или щелчек кнопкой мыши - функцию нужно вызывать в обработчике соответствующего сообщения
 
Код:
void CWnd::InvalidateRect(LPRECT pRegion,
            BOOL EraseBackground = TRUE);


В Вашем сообщении по делу я ничего не нашел, т.к. это итак уже использую

14
21 сентября 2010 года
Phodopus
3.3K / / 19.06.2008
Цитата: m9yt
т.к. это итак уже использую


хреново используешь

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог