方法一:
1.在Form1類的头文件中聲明WM_NCHITTEST消息的回應過程函數:
...
public: // User declarations
MESSAGE void __fastcall WMNCHitTest(TWMNCHitTest& Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_NCHITTEST, TWMNCHitTest, WMNCHitTest)
END_MESSAGE_MAP(TForm)
...
2.在TForm1的cpp文件中定義WMNCHitTest過程,添加代碼如下:
void __fastcall TForm1::WMNCHitTest(TWMNCHitTest &Msg)
{
TForm::Dispatch(&Msg);
// 先對消息進行預處理,然后根据消息映射路徑,直到找到合适的消息響應函數。
// 如果在整個類列表中未找到,同調用缺省消息處理函數(DefaultHandler)。
// 類似Dephi中的過程:Inherited。
if( Msg.Result==HTCLIENT)
Msg.Result = HTCAPTION; // 消息參數轉換
}
方法二:
在物件的OnMouseDown事件中:
if(Button == mbLeft)
{
ReleaseCapture();
Perform(WM_NCLBUTTONDOWN,HTCAPTION, 0);
}