在Vista下查找MDI窗口的玻璃,可以使用Windows API函数来实现。以下是一个简单的示例代码:
#include<windows.h>
#include<iostream>
using namespace std;
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
DWORD dwPID;
GetWindowThreadProcessId(hwnd, &dwPID);
if (dwPID == GetCurrentProcessId())
{
HWND hwndParent = GetAncestor(hwnd, GA_PARENT);
if (hwndParent)
{
HWND hwndMDI = GetAncestor(hwndParent, GA_PARENT);
if (hwndMDI)
{
HWND hwndGlass = FindWindowEx(hwndMDI, NULL, L"SHELLDLL_DefView", NULL);
if (hwndGlass)
{
cout << "找到玻璃窗口:" << hwndGlass<< endl;
return FALSE;
}
}
}
}
return TRUE;
}
int main()
{
EnumWindows(EnumWindowsProc, 0);
return 0;
}
该代码使用EnumWindows函数枚举所有窗口,然后通过GetWindowThreadProcessId函数获取窗口所属进程的进程ID,如果与当前进程的进程ID相同,则获取窗口的父窗口,然后再获取父窗口的父窗口,如果该窗口是MDI窗口,则使用FindWindowEx函数查找SHELLDLL_DefView类的窗口,该窗口就是玻璃窗口。
需要注意的是,该代码只是一个示例,实际使用时可能需要进行修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云