| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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! Круглинский весьма известен по моему |