將軟體顯示到最前面或最後面

2022-01-11 05:47:03 字數 1823 閱讀 3023

///

/// 函式功能:該函式將建立指定視窗的執行緒設定到前台,

/// 並且啟用該視窗。鍵盤輸入轉向該視窗,並為使用者改各種可視的記號。

/// 系統給建立前台視窗的執行緒分配的許可權稍高於其他執行緒。

///

/// 將被啟用並被調入前台的視窗控制代碼

/// 如果視窗設入了前台,返回值為非零;如果視窗未被設入前台,返回值為零

[dllimport("user32.dll", entrypoint = "setforegroundwindow")]

public static extern bool setforegroundwindow(intptr hwnd);

public static readonly intptr hwnd_bottom = new intptr(0x1);

public const uint swp_nosize = 0x1;

public const uint swp_nomove = 0x2;

public const uint swp_showwindow = 0x40;

public const uint32 swp_noactivate = 0x0010;

///

///

///

/// 視窗控制代碼

///

/// 在z序中的位於被置位的視窗前的視窗控制代碼。該引數必須為乙個視窗控制代碼,或下列值之一:

/// hwnd_bottom:將視窗置於z序的底部。如果引數hwnd標識了乙個頂層視窗,則視窗失去頂級位置,並且被置在其他視窗的底部。

/// hwnd_dottopmost:將視窗置於所有非頂層視窗之上(即在所有頂層視窗之後)。如果視窗已經是非頂層視窗則該標誌不起作用。

/// hwnd_top:將視窗置於z序的頂部。

/// hwnd_topmost:將視窗置於所有非頂層視窗之上。即使視窗未被啟用視窗也將保持頂級位置

/// 以客戶座標指定視窗新位置的左邊界

/// 以客戶座標指定視窗新位置的頂邊界

/// 以畫素指定視窗的新的寬度

/// 以畫素指定視窗的新的高度

/// 視窗尺寸和定位的標誌

///

[dllimportattribute("user32.dll", entrypoint = "setwindowpos")]

[return: marshalasattribute(unmanagedtype.bool)]

public static extern bool setwindowpos([inattribute] intptr hwnd, [inattribute()] intptr hwndinsertafter, int x, int y, int cx, int cy, uint uflags);

顯示在最前面:

this.windowstate = formwindowstate.normal;

this.topmost = !this.topmost;

this.topmost = !this.topmost;

win32api.setforegroundwindow(process.getcurrentprocess().mainwindowhandle);

顯示在最後面:

win32api.setwindowpos(process.getcurrentprocess().mainwindowhandle,

win32api.hwnd_bottom,

0, 0, 0, 0,

win32api.swp_nosize | win32api.swp_nomove |

win32api.swp_noactivate

讓MessageBox在最前面顯示

用 引數messageboxtext 型別 system.string 指定文字顯示的 string caption 型別 system.string 指定標題欄宣告中顯示的 string button 型別 system.windows.messageboxbutton 指定的 messagebo...

Unity視窗顯示在最前面

1 得到unity程式視窗的控制代碼 2 判斷unity程式視窗是否在最前面,如果不是,則將其顯示在最前面 dllimport user32.dll private static extern intptr findwindow string lpclassname,string lpwindown...

利用托盤將最小化的窗體顯示在最前面

在論壇裡面看到說了很多方法,如 1 this.topmost true 讓程式窗體總在其他所有窗體的最上面 2 this.activate 3 this.bringtofront 4 dllimport user32.dll entrypoint setforegroundwindow public...