vc獲得窗口並枚舉其子窗口

from:http://blog.const.net.cn/a/6404.htm

調用函數FindWindow(窗口類名,窗口標題)獲得窗口的句柄,然後調用EnumChildWindows(父窗口,回調函數名,參數)來獲得父窗口下的子窗口的句柄,代碼實現如下 [喝小酒的網摘]http://blog.const.net.cn/a/6404.htm
#include <windows.h>
BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
    char className[]="notepad";
    HWND hWnd=::FindWindow(className,NULL);
    if(hWnd)
    {
        ::EnumChildWindows(hWnd,EnumChildProc,0);
        return 0;
    }
    MessageBox(NULL,"fail!","fail",MB_OK);
    return 0;
}
BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM lParam)
{
    char temp1[256],temp2[256];
    ::GetWindowText(hWnd,temp1,255);
    wsprintf(temp2,"hwnd:%x text: %s",hWnd,temp1);
    MessageBox(NULL,temp2,"cwnd",MB_OK);
    return true;
}獲得這些句柄以後就可以爲所欲爲了,能做的事如下:
FindWindow 按類名或窗口名(Caption)查找一個窗口
FindWindowEx 類似於FindWindow提供了更多的功能
GetLastActivePopup 針對指定的窗口,取回上一個活動的彈出式窗口的句柄
GetParent 獲得指定窗口父窗口的句柄
GetTopWindow 獲得指定窗口的第一個子窗口的句柄
GetWindow 如給定一個窗口句柄,該函數能取回具有特定關係的另一個窗口的句柄。如,第一個子窗口、父窗口或窗口列表內的上一個或下一個窗口。
SetParent 改變任何窗口的父窗口。
BringWindowToTop 使指定的窗口進入可見窗口列表的頂部,如它被部分或全部隱藏,則令其全部可見。同時,該窗口成爲當前活動窗口。只有從前臺線程調用時,才生效。
ChildWindowFromPoint 在規定的座標取得某子窗口的句柄(如果有的話),這兒的座標是指相對於父窗口的客戶區座標。
ChildWindowFromPointEx 與ChildWindowFromPoint相同,功能更強。
ClientToScreen 判斷指定點在窗口客戶區內的屏幕座標。
GetClientRect 獲得對窗口客戶區進行表述的一個矩形(RECT)。這是以像素爲單位判斷客戶區大小的一個簡便的方法。
GetWindowPlacement 獲得指定窗口的一個WINDOWPLACEMENT結構。該結構說明了窗口的狀態。
GetWindowRect 用於獲得一個矩形(RECT)結構,它描述了窗體在屏幕座標系統中的位置。
MapWindowPoints 對某窗口客戶區座標內的一個或多個點進行轉換,用另一窗口的客戶區座標表示。
MoveWindow 移動指定窗口的位置,並能改變它的大小。
OpenIcon 將一個最小化窗口恢復爲原始狀態。
ScreenToClient 針對屏幕內一個指定的點,用某個特定窗口內的客戶區座標表示它。
SetWindowsPos 更改窗口的位置和大小,並能修改它在內部窗口列表內的位置(這個列表起着控制窗口先是順序)。
SetWindowPlacement 在一個WINDOWPLACEMENT結構的基礎上,設置某窗口的特徵。該結構描述了窗口的狀態,以及它在最小化、最大化或正常顯示時的位置。
WindowFromPoint 根據屏幕上一個指定的點,判斷哪個窗口正位於它的下面。
GetClassInfo 取得指定窗口的類信息結構
GetClassInfoEx 效果類似於GetClassInfo,但增加了一些功能
GetClassLong,GetClassWord 用於獲取窗口類信息
SetClassLong,SetClassWord 用於設置窗口類信息
GetClassName 獲取窗口類名
GetDesktopWindow 獲取整個桌面(屏幕)的窗口句柄
GetWindowLong,GetWindowWord 獲取與窗口有關的信息
SetWindowLong,SetWindowWord 設置與窗口有關的信息
GetWindowText 獲得窗口文本。它的效果大致等價於窗體或控件的Text屬性
GetWindowTextLength 獲得窗口文本的長度,用字符數表示。
IsChild 判斷某窗口是否爲另一窗口的子窗口或從屬窗口。
IsIconic 判斷某窗口是否處於最小化狀態
IsWindow 判斷指定的句柄是否爲窗口句柄。
IsWindowEnabled 判斷指定的窗口是否處於活動狀態。
IsWindowVisible 判斷某窗口是否可見。
IsZoomed 判斷窗口是否處於最大化狀態。
SetWindowText 設置窗口文本。大致等價於窗體或控件的Text屬性。
AnyPopup 判斷是否存在可見的彈出式窗口
CascadeWindows 令窗口在一個父窗口內層疊顯示
CloseWindow 對指定的窗口進行最小化處理(如果它是個釘級窗口)對彈出式及子窗口無效
DestroyWindow 清除指定的窗口以及下屬所有子窗口與包容窗口
DrawAnimatedRects 獲得窗口打開或關閉的動畫效果
EnableWindow 激活或屏蔽(禁用)指定窗口
FlashWindow 令指定窗口的標題閃爍顯示
GetUpdateRect 判斷需要更新的那個窗口的位置
GetWindowContextHelpId 取得與窗口關聯在一起的幫助場景
InvalidateRect 指定窗口內需要更新的全部或部分客戶區
IsWindowUnicode 判斷一個窗口是否期望文本消息採用Unicode格式
LockWindowUpdate 允許或禁止描繪指定的窗口
RedrawWindow 一個功能強大的函數,用於控制全部或部分窗口重畫
ScrollWindow,ScrollWindowEx 滾動顯示窗口的全部或部分客戶區
SetWindowContextHelpId 設置與窗口關聯在一起的幫助場景
ShowOwnedPopups    隱藏或顯示從屬於指定窗口的所有保容彈出窗口
ShowWindow              用於設置窗口的狀態,其中包括窗口的隱藏、顯示、最小化、最大化以及激活等
ShowWindowAsync     類似於ShowWindow,增加了對其他進程內的窗口進行操作的能力
TileWindows                令窗口在一個父窗口內平鋪顯示
UpdateWindow           立即更新窗口內需要更新的任何部分
ValidateRect                指出全部或部分矩形已經更新,毋需再更新[喝小酒的網摘]http://blog.const.net.cn/a/6404.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章