TForm i TApplication
12.08.1999
  • Przechwytywanie operacji przeciągania formy.

       Trzeba przechwycić komunikat WM_SYSCOMMAND. Podczas przeciągania wParam ustawiony jest na 0xf012 (61458) tzn. SC_MOVE + HTCAPTION.

//------------------------------------------------------ 
//w pliku nagłówkowym  
void __fastcall CatchDrag(TMessage &Msg);  
BEGIN_MESSAGE_MAP  
    MESSAGE_HANDLER(WM_SYSCOMMAND, TMessage, CatchDrag);  
END_MESSAGE_MAP(TForm)  

//------------------------------------------------------ 
//w pliku źródłowym

void __fastcall TForm1::CatchDrag(TMessage &Msg)  
{  
    TForm::Dispatch(&Msg);  
    if (Msg.WParam == SC_MOVE + HTCAPTION)  
    {  
       int Previous_MouseX_Position = LOWORD(Msg.LParam);  
       int Previous_MouseY_Position = HIWORD(Msg.LParam);  
       //tutaj wpisz co chcesz...  
    }  
}