窗體去邊框後移動

2021-09-05 12:56:00 字數 1735 閱讀 9007

窗體的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...