程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 移動無標題欄窗口

移動無標題欄窗口

編輯:Delphi
一般情況下,移動一個窗體需要將鼠標放置在標題欄上才能拖動窗體,為 什麼非要使用標題欄呢?其實我們可以使用一個巧妙的方法來實現將鼠標放置 在窗體上按下就可拖動窗體,下面先看實現代碼。在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)傳遞出去,這樣就巧妙的欺騙程序認為是標題欄被按下,當然就可拖動窗體了。
  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved