На чистом WinAPI вся хитрость зашита в сообщениях WM_CREATE & WM_PAINT. А здесь, явно чего-то нехватает? Вот только чего?
Начальную инициализацию можно "убрать" в коструктор формы или FormCreate. Отрисовка должна происходить по нажатию кнопки и в дальнейшем не затираться.
| Код | //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { // HDC pDC = GetDC(Panel1->Handle);
if(pDC != NULL) { POINT currpoint;
currpoint.x = Panel1->Width; currpoint.y = Panel1->Height;
RichEdit1->Lines->Add("Panel1->Width = " + IntToStr(Panel1->Width)); RichEdit1->Lines->Add("Panel1->Height = " + IntToStr(Panel1->Height));
DPtoLP(pDC,&currpoint,1); SetWindowOrgEx( pDC, -currpoint.x/2, -currpoint.y/2, NULL);
for(int i=10; i>= 0; i--) { Ellipse( pDC, // handle to device context -20*i, // x-coord. of bounding rectangle's upper-left corner 20*i, // y-coord. of bounding rectangle's upper-left corner 20*i, // x-coord. of bounding rectangle's lower-right corner -20*i // y-coord. bounding rectangle's f lower-right corner ); }
ReleaseDC( Panel1->Handle, pDC); } else RichEdit1->Lines->Add("Problems with Graphics!");
MessageBox(Application->Handle,"Work","Message",MB_OK); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormResize(TObject *Sender) { Invalidate(); }
|
|