- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
请看下面的代码。
MyEnumProc 使用以下代码仅运行一次。但是如果我注释掉 IsWindowVisible(wnd);,它会运行很多次。
为什么 IsWindowVisible 会发生这种情况(只运行一次)?我以为 IsWindowVisible 只是一个检查 wnd 属性的函数?
test.c代码:
#include <windows.h>
#include <stdio.h>
BOOL CALLBACK MyEnumProc( HWND wnd, LPARAM lParam )
{
printf("run\n");
IsWindowVisible(wnd);
}
int main( void )
{
EnumDesktopWindows( NULL, MyEnumProc, 0 );
printf("end\n");
return 0;
}
我的环境是:
Windows XP SP3。
海湾合作委员会 3.4.6(mingw)
编译选项为:gcc -o test.exe test.c
我在 cmd.exe 中编译并运行了 test.exe。
最佳答案
您必须返回一个值。我希望您的编译器警告您不是。如果它没有警告您,那么您应该更改选项以使其这样做。
To continue enumeration, the callback function must return TRUE; to stop enumeration, it must return FALSE.
这种终止枚举的能力允许你短路一个枚举。找到所需项目后,无需继续接收回叫。有许多 Windows API 函数遵循这个习惯用法。
关于windows - 为什么 IsWindowVisible 使 EnumDesktopWindows 的回调只运行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5251247/
请看下面的代码。 MyEnumProc 使用以下代码仅运行一次。但是如果我注释掉 IsWindowVisible(wnd);,它会运行很多次。 为什么 IsWindowVisible 会发生这种情况(
我正在从我的 Qt 应用程序中自动化 Excel 窗口。 在this问题,我正在寻找一种方法来清楚地识别 excel 窗口何时关闭。我没有从 Stack Overflow 得到答案。 我想到了一种新方
我是一名优秀的程序员,十分优秀!