请问一个有关EnumWindows回调函数的有关问题
请教一个有关EnumWindows回调函数的问题Delphi(Pascal) codefunction EnumWindowsProc(Wnd: DWORD lparam
请教一个有关EnumWindows回调函数的问题
Delphi(Pascal) code function EnumWindowsProc(Wnd: DWORD; lparam: LPARAM): Bool; stdcall; var PID: DWORD; begin GetWindowThreadProcessID(Wnd, @PID); Result := (PID <> PEnumInfo(lparam).ProcessID) or (not IsWindowVisible(WND)) or (not IsWindowEnabled(WND)); if not Result then PEnumInfo(lparam).HWND := WND; end;
程序中Result的返回值为什么还要加上‘(not IsWindowVisible(WND))’和‘(not IsWindowEnabled(WND));’两个条件?
个人认为只需要(PID <> PEnumInfo(lparam).ProcessID)即可。
[解决办法]加不加在你怎么认为,不是规定的
[解决办法]你沒理解他的話
這段代碼的意義是,找到可見并可操作的窗體即返回。
1、取得結果取決于枚舉的順序,當你把窗體狀態改為可見和不可見,可見時,可能是自己或其他,不可見時,則一定不是自己;
2、沒有注釋那代碼,取得的一定是可見并可操作的窗體;注釋掉,就包括了不可見或不可操作的窗體;結果都取決于枚舉窗口的順序
枚舉窗口的順序是按照Z-Order從頂層到底層遍歷...