窗體的formborderstyle屬性為none時,可以使用滑鼠移動窗體。屬性
formborderstyle
獲取或設定窗體的邊框樣式
none
無邊框。
fixedsingle
固定的單行邊框。
fixed3d
固定的三維邊框。
fixeddialog
固定的對話方塊樣式的粗邊框。
sizable
可調整大小的邊框。
fixedtoolwindow
不可調整大小的工具視窗邊框。 工具視窗不會顯示在工作列中也不會顯示在當使用者按 alt+tab 時出現的視窗中。 儘管指定 fixedtoolwindow 的窗體通常不顯示在工作列中,還是必須確保 showintaskbar 屬性設定為 false,因為其預設值為 true。
sizabletoolwindow
可調整大小的工具視窗邊框。 工具視窗不會顯示在工作列中也不會顯示在當使用者按 alt+tab 時出現的視窗中。事件
mousedown
當滑鼠指標位於控制項上並按下滑鼠鍵時發生。方法
releasecapture
滑鼠捕獲。如果控制項當前具有滑鼠捕獲,釋放訪問。 否則,此功能不起作用。
sendmessage
向訊息視窗傳送一條訊息,並一直等到 wndproc 方法處理此訊息。
postmessage
在與建立指定視窗的執行緒關聯的訊息佇列中放置(發布)訊息,並返回訊息,而無需等待執行緒處理該訊息。要在與執行緒關聯的訊息佇列中發布訊息,請使用postthreadmessage函式。常量
名稱數值
含義wm_syscommand
0x0112
當使用者從視窗選單選擇乙個命令或當使用者選擇最大化按鈕,最小化按鈕,復原按鈕或關閉按鈕時,乙個視窗將會接收該訊息。
sc_move
0xf010
移動視窗
htcaption
0x0002
表示滑鼠在視窗標題欄時的系統資訊
通過窗體的mousedown事件。
user32.dll是windows使用者介面相關應用程式介面,用於包括windows處理,基本使用者介面等特性,如建立視窗和傳送訊息。
postmessage返回值是true,sendmessage是false。第四個變數數值無特殊要求。
private void form1_mousedown(object sender, mouseeventargs e)
[dllimport("user32.dll")]
public static extern bool releasecapture();
[dllimport("user32.dll")]
public static extern bool sendmessage(intptr hwnd, int wmsg, int wparam, int lparam);
[dllimport("user32.dll")]
public static extern bool postmessage(intptr hwnd, int wmsg, int wparam, int lparam);
public const int wm_syscommand = 0x0112;
public const int sc_move = 0xf010;
public const int htcaption = 0x0002;
C 移動無邊框窗體
private point mouseoffset private bool ismousedown false private void form1 mousedown object sender,system.windows.forms.mouseeventargs e private void...
C 無邊框控制窗體移動
雖然c 自帶有邊框,但是在開發過程中那個邊框並不是很好看,當我們不使用那個邊框的時候,那麼就會面臨乙個問題,沒有c 自帶的邊框了,那麼窗體怎麼進行移動呢?這涉及到c 的三個事件 1.mousedown 滑鼠單擊事件 2.mousemove 滑鼠經過事件 3.mouseup 滑鼠抬起事件 在寫的時候依...
Qt學習二 移動無邊框窗體
本程式實現了,可以關閉乙個視窗,還可以拖著視窗到處跑的功能。一 mydialog.h的程式 ifndef mydialog h define mydialog h include include ui mydialog.h include 引用滑鼠類標頭檔案 include 引用按鈕類標頭檔案 cl...