Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > графика в диалоговом окне |
Автор: Дима 28.11.2002, 22:58 |
Сделал все по книге а оно мерцает. Подскажите пожалуйста как избежать! void MyDialog::OnPaint() { CWnd* pWnd = GetDlgItem(IDC_STATIC1); CDC* pControlDC = pWnd->GetDC(); pWnd->Invalidate(); pWnd->UpdateWindow(); pControlDC->SelectStockObject(BLACK_BRUSH); pControlDC->Rectangle(0,0,10,10); pWnd->ReleaseDC(pControlDC); } |
Автор: AntonSaburov 29.11.2002, 00:59 |
Можно попытаться ускорить вывод графики. Если в двух слова, то вывести рисунок в память а потом уже отображать. |
Автор: Observer 29.11.2002, 02:50 |
По-моему не хватает device-context objects в начале |
Автор: Baa 29.11.2002, 07:59 |
http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?act=ST;f=1;t=2914 |
Автор: Blade 29.11.2002, 09:36 | ||||
А что это за чушь ![]()
Или это я такой тупой? Убери эти идиотские строчки, всё будет OK ![]() |
Автор: Дима 29.11.2002, 20:27 |
Blade! Пример взят из книги Д.Д Круглински глава 6. Твой код работает спасибо за помощь. |
Автор: Blade 30.11.2002, 05:53 |
Да не за что ![]() |
Автор: Baa 30.11.2002, 07:05 | ||
2 Blade: Это он рисует на IDC_STATIC1 В частности: //получаем указатель на IDC_STATIC1 CWnd* pWnd = GetDlgItem(IDC_STATIC1); //А тут указатель на контекст этого окна CDC* pControlDC = pWnd->GetDC(); //выставляем, чтобы при следующем WM_PAINT сие окно отрисовалось. pWnd->Invalidate(); //Посылаем ему WM_PAINT pWnd->UpdateWindow(); //Выбираем черную кисть pControlDC->SelectStockObject(BLACK_BRUSH); //и рисуем черный квадрат... прям Малевич pControlDC->Rectangle(0,0,10,10); //освобождаем контекст pWnd->ReleaseDC(pControlDC); Вот ток pWnd->Invalidate можно убрать... з.ы. а у меня не мерцает %) |
Автор: Blade 30.11.2002, 10:01 | ||
Я про то и говорил. У нас ведь WM_PAINT отсылается каждый раз при перетаскиватие, перекрытие и т.д. окна, и Invalidate запускает OnPaint(), вот и получается что вся эта фигня просто циклится, т.е. окно обновляется не тольок при перетаскивание, но и во всё остальное время ![]() P.S. А странная, какая-то книжка была... ![]() |
Автор: Дима 1.12.2002, 03:45 |
Blade! Круглинский весьма известен по моему |