и всеже отвечая "по топу", чем вам не нравится субклассирование окна?а дальше отлавливайте все что хотите и рисуйте где и чего хотите)
| Код | //--------------------------------------------------------------------------- LRESULT CALLBACK NewWindowProc(HWND hWnd, UINT msg, WPARAM w, LPARAM l) { if(msg==WM_NCPAINT){ TCanvas* canvas = new TCanvas(); canvas->Handle = GetWindowDC(Form1->Handle); canvas->Brush->Color = clRed; canvas->Rectangle(0,0,300,10); ReleaseDC(Form1->Handle,canvas->Handle); delete canvas; return 0; //break process this message } return CallWindowProc((FARPROC)Form1->OldWndProc, hWnd, msg, w, l); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { OldWindowProc = (WNDPROC)SetWindowLong(Handle, GWL_WNDPROC, (long)NewWindowProc); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormDestroy(TObject *Sender) { SetWindowLong(Handle, GWL_WNDPROC, (long)OldWindowProc); } //---------------------------------------------------------------------------
|
симитировать мб и проще, но офтоп))
зЫ: в билдере не рублю, потому делал как знаю) |