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/