读书人

EnumDesktopWindows 函数,该如何处理

发布时间: 2012-03-05 11:54:02 作者: rapoo

EnumDesktopWindows 函数
我想用 EnumDesktopWindows 函数来取另外一个桌面上的 所有类
我忘记在 回函数返回 什么了!
我记得的是有的跟 CallWindowProc 函数类似的函数
麻烦那位大哥告诉我了..谢谢..!
下面是 PureBasic 写的代码


Procedure EnumWindowsProc(hwnd,lParam)
cn.s=Space(#MAX_PATH)
GetClassName_(hwnd,cn,#MAX_PATH-1)
Debug cn

ProcedureReturn // 这个位置我记得好象有个跟 CallWindowProc 函数类似的函数
EndProcedure


hDesktop.l = OpenDesktop_( "桌面名称 ",0,#False,511)

If hDesktop > 0

EnumDesktopWindows_(hDesktop,@EnumWindowsProc(),0)

EndIf

CloseDesktop_(hDesktop)

[解决办法]
EnumWindowsProc 函数

函数功能描述:用在EnumWindows或EnumDesktopWindows中作为回调函数

1.函数原形
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam);
2.参数
HWND hwnd:窗口句柄
LPARAM lParam:用户自定义的数据,在调用EnumWindows或EnumDesktopWindows时传递的参数
3.返回值
如果要继续Enum那么返回TRUE,否则返回FALSE

4.示例代码
下面代码获取所有窗口的句柄,并保存到向量里
std::vector <HWND> g_AllWindow;
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{ return g_AllWindow.push_back(hwnd),TRUE; } //Enum所有窗口,所以总返回TRUE

void GetAllWindow()
{
EnumWindows(&EnumWindowProc,0);
}

读书人网 >C++

热点推荐