SetForegroundWindow 函數功能:該函數將創建指定窗口的線程設置到前台,並且激活該窗口。鍵盤輸入轉向該窗口,並為用戶改各種可視的記號。系統給創建前台窗口的線程分配的權限稍高於其他線程。
函數原型:BOOL SetForegroundWindow()
SetForegroundWindow()函數本身是不帶參數的,具體激活某個窗口的方法可以用:
pWnd->SetForegroundWindow();//這里的pWnd即所要激活窗口的句柄。
返回值:如果窗口設入了前台,返回值為非零;如果窗口未被設入前台,返回值為零。
備注:前台窗口是z序頂部的窗口,是用戶的工作窗口。在一個多任務優先搶占環境中,應讓用戶控制前台窗口。
SetWindowPlacement 函數功能:該函數設置指定窗口的顯示狀態和恢復,最大化,最小化位置。
函及原型;BOOL SetWindowPlacement(HWND hWnd,CONST WINDOWPLACEMENT★lpwndpl);
參數:
hWnd:窗口句柄。
lpwndpl:指向一個WINDOWPLACEMWNT結構的指針,該結構給出了新的顯示狀態和窗口位置。
在調用函數SetWindowPlacement之前,將WINDOWPLACEMWNT結構的長度單元置為sizeof(WINDOWPLACEMENT)。如果lpwndpl->length設置不正確,函數SetWindowPlacement將失敗。
返回值:如果函數成功,返回值為非零。如果函數失敗,返回值為零。若想獲得更多錯誤信息,請調用callGetLastErro函數。
備注:如果在WIDNOWPLACEMENT中指定的信息使窗口完全顯示在屏幕之外,系統自動調整坐標以使窗口可見,兼顧屏幕設置和多種監視器配置。
WINDOWPLACEMENT的長度成員信息設置為sizeof(WINDOWPLACEMENT),如果設置不正確,函數將返回FLASE。查看窗口位置坐標的信息,參看WINDOWPLACEMENT
GetActiveWindow:獲取系統當前激活的窗口,也可以理解為獲取焦點的窗口;GetForegroundWindow:獲取系統當前最頂層窗口。
最前的窗口不一定是激活的窗口。比如說qq的主窗口,只要不靠到屏幕邊上,就是總在最前的,你拖放一個ie過去是擋不住的,這時候,你用GetActiveWindow得到的是有焦點的ie窗口,用GetForegroundWindow得到的是qq的窗口。這個例子很直觀。