EnumWindows
使用(或FindChildWindows
)Win32 API时如何避免使用全局变量?
我大约有以下代码:
HWND prog_hwnd;
BOOL CALLBACK ProgEnumProc(HWND hwnd, LPARAM lParam) {
if (...) {
// found the right hwnd, assign it to prog_hwnd;
prog_hwnd = hwnd;
return FALSE;
}
return TRUE;
}
void FindProgHwnd()
{
EnumWindows(ProgEnumProc, 0);
}
int main()
{
FindProgHwnd();
if (prog_hwnd) {
// found prog_hwnd, but it's global variable
}
}
如您所见,要找到正确的 hwnd,我必须使用全局变量prog_hwnd
。我想避免使用全局变量。有没有办法做到这一点?