
เรามีทางเลือกหลายทางในการที่จะเคลื่อนย้าย form ที่ผมจะนำเสนอคือวิธีการดัก message ของ windows ว่ามีการ Click ที่ Client Form
หรือไม่โดยไม่จำเป็นว่าเราจะต้อง move form โดยคลิ๊กที่ Caption bar เสมอไป
procedure WMNCHitTest(var Msg: TWMNCHitTest) ; message WM_NCHitTest;
นำด้านไปวางในส่วนของ Private
procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest) ;
begin
inherited;
if Msg.Result = htClient then Msg.Result := htCaption;
end;
อันนี้วางในส่วนของ Implimentation เป็นอันเสร็จง่ายไหมครับ
สังเกตุว่าตรง message WM_NCHitTest; คือดัก Message ที่เข้ามาว่ามีการคลิ๊กหรือไม่
Msg.Result := htCaption; คือการสั่งให้ส่ง Message hitCaption คล้ายกับว่าเหมือนกับเราคลิ๊กที่ Form แต่ให้ผลเหมือนการ
คลิ๊กที่ Caption บาร์นั่นหล่ะครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น