///
/// 函式功能:該函式將建立指定視窗的執行緒設定到前台,
/// 並且啟用該視窗。鍵盤輸入轉向該視窗,並為使用者改各種可視的記號。
/// 系統給建立前台視窗的執行緒分配的許可權稍高於其他執行緒。
///
/// 將被啟用並被調入前台的視窗控制代碼
/// 如果視窗設入了前台,返回值為非零;如果視窗未被設入前台,返回值為零
[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...