首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

EnumDesktopWindows 函数,该如何处理

2012-03-05 
EnumDesktopWindows 函数我想用EnumDesktopWindows函数来取另外一个桌面上的所有类我忘记在回函数返回什么

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);
}

热点排行