請問要如何隱藏表單標題列後,又可拖曳表單? |
尚未結案
|
hidylan
一般會員 發表:14 回覆:17 積分:6 註冊:2004-12-20 發送簡訊給我 |
|
shinjie
資深會員 發表:12 回覆:275 積分:287 註冊:2003-03-19 發送簡訊給我 |
|
shinjie
資深會員 發表:12 回覆:275 積分:287 註冊:2003-03-19 發送簡訊給我 |
無意中看到一段資料可以更快實現這個功能,此為轉貼資料,來源不明。 一般情況下,移動一個表單需要將滑鼠放置在標題欄上才能拖動表單,?什?非要使用標題欄呢?其實我們可以使用一個巧妙的方法來實現將滑鼠放置在表單上按下就可拖動表單,下面先看實現代碼。在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)傳遞出去,這樣就巧妙的欺騙程式認?是標題欄被按下,當然就可拖動表單了。
------
我將在茫茫人海中尋訪我唯一之靈魂伴侶。 得之;我幸。不得;我命。 |
hidylan
一般會員 發表:14 回覆:17 積分:6 註冊:2004-12-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |