不用標題欄也移動表單 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
不用標題欄也移動表單 一般情況下,移動一個表單需要將滑鼠放置在標題欄上才能拖動表單,爲什麽非要使用標題欄呢?其實我們可以使用一個巧妙的方法來實現將滑鼠放置在表單上按下就可拖動表單,下面先看實現代碼。在Form1的“Private”部分聲明過程:
在private部分加入下列代碼:
procedure wmnchittest(var msg:twmnchittest);
message wm_nchittest;
在程式部分加入以下代碼:
procedure TForm1.wmnchittest(var msg:twmnchittest);
begin
inherited;
if (htclient=msg.result) then msg.result:=htcaption;
end;
上面的關鍵代碼雖然只有兩行,但它實現了滑鼠直接拖動表單的目的。代碼的原理是利用表單的WM_NCHITTEST消息,這個消息是當游標移動、滑鼠按下或釋放時發生的,當程式檢測到滑鼠在表單中按下的消息後(消息的值爲htClient),將滑鼠在標題欄上按下時産生的消息(值爲htCaption)傳遞出去,這樣就巧妙的欺騙程式認爲是標題欄被按下,當然就可拖動表單了。 *********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
ruther
一般會員 發表:0 回覆:2 積分:0 註冊:2003-09-21 發送簡訊給我 |
|
ruther
一般會員 發表:0 回覆:2 積分:0 註冊:2003-09-21 發送簡訊給我 |
|
Londer
一般會員 發表:5 回覆:32 積分:7 註冊:2003-01-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |