VortEX |
Отправлено: 08.10.2005, 21:01 |
|
Не зарегистрирован
|
Hi All,
Наблюдается сабж. Сцена рисуется в OnPaint'е так:
== cut ==
PAINTSTRUCT ps;
BeginPaint(Form1->Handle, &ps);
..
SwapBuffers(Form1->Canvas->Handle);
EndPaint(Form1->Handle, &ps);
== cut ==
В другом месте программы сцена рисуется через вызов Form1->Repaint();
При частом вызове Repaint'a окно мерцает.
Заранее спасибо.
В Delphi это фиксилось так:
в свойствах формы писалось:
protected procedure WMPaint(var Msg: TWMPaint); message WM_PAINT;
и затем:
procedure TForm1.WMPaint(var Msg: TWMPaint);
begin
// тут обработка WMPaint
end;
А как так сделать в билдере? |
|
klen |
Отправлено: 11.10.2005, 16:00 |
|
Машинист паровоза
Группа: Участник
Сообщений: 239
|
какойто странный у тебя OpenGL. Если ты правильно задаш вопрос (чтоб я понял где GL а где GDI у тебя) то я тебе отвечу. |
|
Guest |
Отправлено: 11.10.2005, 17:38 |
|
Не зарегистрирован
|
А что именно уточнить?
== cut ==
PAINTSTRUCT ps;
BeginPaint(Form1->Handle, &ps);
// ***** тут весь OpenGL *****
SwapBuffers(Form1->Canvas->Handle);
EndPaint(Form1->Handle, &ps);
== cut ==
.....................
и затем:
procedure TForm1.WMPaint(var Msg: TWMPaint);
begin
// тут обработка WMPaint <=> написанному выще под катом
end; |
|