| PMG http://forum.pmg.org.ru/ |
|
| Рисование на TPanel - помогите разобраться новичку. http://forum.pmg.org.ru/viewtopic.php?f=1&t=8143 |
Страница 1 из 1 |
| Автор: | yellow_umbrella [ 26 окт 2011 21:23 ] |
| Заголовок сообщения: | Рисование на TPanel - помогите разобраться новичку. |
Всем доброго времени суток! Есть такая проблема: создаю два контекста отображения - для формы и для TPanel, которая находится на форме. В FormPaint по очереди выделяю контексты изображения (wglMakeCurrent), рисую в них, затем очищаю буфер. При этом в первом контексте изображение рисуется, а во втором на TPanel - нет. Но если вызывать событие Paint для формы по таймеру, то изображение на TPanel все же появляется. Так же оно появляется и в том случае, если Paint для формы вызывать по клику мыши. Буду очень, очень благодарна, если кто-нибудь поможет мне разобраться, в чем тут дело и как это исправить. Вот код функции FormPaint для формы. void __fastcall TForm1::FormPaint(TObject *Sender) { wglMakeCurrent(hDC, ghRC); //в этом контексте изображение отрисовка происходит нормально glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glBegin(GL_LINES); glColor3ub(255, 255, 0); //x glVertex3f(-50, 0, 0); glVertex3f(50, 0, 0); glColor3ub(255, 0, 0); //y glVertex3f(0, 50, 0); glVertex3f(0, -50, 0); glColor3ub(255, 255, 255);//z glVertex3f(0, 0, 50); glVertex3f(0, 0, -50); glEnd(); SwapBuffers(hDC); wglMakeCurrent(hDC1, ghRC1); //в этом случае на TPanel не отображается даже "черный экран" glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glBegin(GL_LINES); glColor3ub(255, 255, 0); //x glVertex3f(-50, 0, 0); glVertex3f(50, 0, 0); glColor3ub(255, 0, 0); //y glVertex3f(0, 50, 0); glVertex3f(0, -50, 0); glColor3ub(255, 255, 255);//z glVertex3f(0, 0, 50); glVertex3f(0, 0, -50); glEnd(); SwapBuffers(hDC1); } |
|
| Автор: | MagicWolf [ 06 ноя 2011 13:39 ] |
| Заголовок сообщения: | Re: Рисование на TPanel - помогите разобраться новичку. |
Надо вызывать обновление экрана TPanel средствами TPanel, а не только Opengl. |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|