var
PassHandle: HWND;
UserHandle: HWND;
begin
//frmHandle 全局句柄变量窗体创建时已查找到
PassHandle := FindWindowEx(frmHandle,0,'Edit',nil);
UserHandle := FindWindowEx(frmHandle,PassHandle,'Edit',nil);
OKBtn := FindWindowEx(frmHandle,UserHandle,'Button',nil);
end;为啥前两个的句柄都能找到OKBtn的却找不到呢.
PassHandle: HWND;
UserHandle: HWND;
begin
//frmHandle 全局句柄变量窗体创建时已查找到
PassHandle := FindWindowEx(frmHandle,0,'Edit',nil);
UserHandle := FindWindowEx(frmHandle,PassHandle,'Edit',nil);
OKBtn := FindWindowEx(frmHandle,UserHandle,'Button',nil);
end;为啥前两个的句柄都能找到OKBtn的却找不到呢.
第二个参数hwndChildAfter :子窗口句柄。查找从在Z序中的下一个子窗口开始。子窗口必须为hwndPareRt窗口的直接子窗口而非后代窗口。如果HwndChildAfter为 NULL,查找从hwndParent的第一个子窗口开始。如果hwndParent 和 hwndChildAfter同时为NULL,则函数查找所有的顶层窗口及消息窗口。
OKBtn的排序是否在UserHandle之前,所以从UserHandle开始找找不到,先试试从0开始能否找到,再试试PassHandle 后能否找到,能找到说明我的推断是对的。