EnumWindows

EnumWindows,該函式枚舉所有螢幕上的頂層視窗,並將視窗句柄傳送給應用程式定義的回調函式。回調函式返回FALSE將停止枚舉,否則EnumWindows函式繼續到所有頂層視窗枚舉完為止。

函式功能

該函式枚舉所有螢幕上的頂層視窗,並將 視窗句柄傳送給 應用程式定義的 回調函式。回調函式返回FALSE將停止枚舉,否則EnumWindows函式繼續到所有頂層視窗枚舉完為止。

函式原型

BOOL EnumWindows(WNDENUMPROC lpEnumFunc,LPARAM lParam);
參數:
lpEnumFunc:指向一個 應用程式定義的 回調函式 指針,請參看 EnumWindowsProc
lPararm:指定一個傳遞給回調函式的應用程式定義值。
回調函式原型
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam);
參數:
hwnd:頂層視窗的句柄
lparam:應用程式定義的一個值(即EnumWindows中lParam)

返回值

如果函式成功,返回值為非零;如果函式失敗,返回值為零。若想獲得更多 錯誤信息,請調用GetLastError函式。

備註

EnumWindows函式不列舉子視窗。
在循環體中調用這個函式比調用 GetWindow函式更可靠。調用GetWindow函式中執行這個任務的 應用程式可能會陷入死循環或指向一個已被銷毀的視窗的句柄。

速查

Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本;
頭檔案:winuser.h中聲明,包含 windows.h即可.
庫檔案:user32.lib。

舉例

代碼VC++ MFC(列舉所有 桌面視窗,視窗標題放在 全局變數string buf[] 數組中,n是 靜態變數):
BOOL CALLBACK lpEnumFunc(HWND hwnd, LPARAM lParam)
{
char str[100];
::GetWindowText(hwnd,str,sizeof(str));
buf[n++]=str;
return 1;
}
void CEnumWindowsDlg::OnOK()
{
// TODO: Add extra validation here
n=0;
EnumWindows(lpEnumFunc,NULL);
int i;
for(i=0;i
{
if(buf !="")
m_list.AddString(buf.c_str());
}
//CDialog::OnOK();
}

相關詞條

相關搜尋

熱門詞條

聯絡我們