| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 窗口_枚举所有子窗口 | 整数型 | 枚举指定句柄下的所有子窗口句柄,返回子窗口句柄数目,失败或无子返回0 | |||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| 父窗口句柄 | 整数型 | 当为空时相当于EnumWindows | 子窗口数组 | 整数型 | 变量储存返回值。 | 类名 | 文本型 | 要过滤的窗口类名。 |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| pAddr | 整数型 | |||||
| pMem | 整数型 | |||||
| dwLen | 整数型 | |||||
类名 = 选择 (取文本长度 (删首尾空 (类名)) > 0, 类名, “”)
pAddr = 取指针_通用型_数组 (子窗口数组)
pMem = LocalAlloc ( #LMEM_ZEROINIT, 8) ' 申请8自己内存,记录两个参数
__set (pMem, 0, pAddr) ' 直接把参数的数组指针写进去
__set (pMem, 4, 取指针_文本型 (类名)) ' 把类名写进去
如果真 (EnumChildWindows (父窗口句柄, 到整数 (&EnumChildProc), pMem)) ' 把内存地址传递进去
dwLen = 取数组成员数 (子窗口数组)LocalFree (pMem) ' 有申请就要有释放,不然就内存泄漏了
返回 (dwLen)
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| EnumChildProc | 逻辑型 | ||||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| hWnd | 整数型 | lParam | 整数型 | 0 数组栈地址, 4类名指针 | |||
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| className | 文本型 | |||||
| szStr | 文本型 | |||||
| pAddr | 整数型 | |||||
| pTmp | 整数型 | |||||
| array | 整数型 | "0" | ||||
| pAddrOld | 整数型 | |||||
如果真 (hWnd ≠ 0)
className = 窗口_取类名 (hWnd)
如果真 (LocalSize (lParam) = 8) ' 上面申请的是8个字节
pAddr = __get (lParam, 0) ' 数组栈地址
pTmp = __get (lParam, 4)

如果真 (pTmp ≠ 0)

szStr = 指针到文本 (pTmp)
pAddrOld = 指针转移 (pAddr, 取指针_通用型_数组 (array)) ' 使用这个可以避免自己处理扩充内存的操作,转移后直接使用E的操作方式操作

如果 (取文本长度 (szStr) > 0)


如果真 (到小写 (szStr) = 到小写 (className))


加入成员 (array, hWnd)





加入成员 (array, hWnd)
指针还原 (pAddr, 取指针_通用型_数组 (array), pAddrOld) ' 有转移就要有还原,不然被释放的就是上面的数组了
返回 (真)

返回 (假)
| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 取指针_通用型_数组 | 整数型 | 取到的是变量在栈中的地址,和 取变量地址() 一样 | |||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| 变量 | 整数型 | ||||||
返回 (0)
词条作者信息 使用例程
