从HWND获取窗口类名称和ID的方法如下:
要从HWND获取窗口类名称,可以使用GetClassName
函数。该函数的原型如下:
int GetClassName(
HWND hWnd,
LPTSTR lpClassName,
int nMaxCount
);
参数说明:
hWnd
:目标窗口的句柄。lpClassName
:指向接收窗口类名称的缓冲区的指针。nMaxCount
:缓冲区的大小,以字符为单位。示例代码:
#include<Windows.h>
#include<iostream>
#include<vector>
std::string GetClassNameFromHWND(HWND hwnd) {
std::vector<char> className(256);
GetClassName(hwnd, &className[0], className.size());
return std::string(className.begin(), className.end());
}
int main() {
HWND hwnd = FindWindow(NULL, "计算器");
std::string className = GetClassNameFromHWND(hwnd);
std::cout << "窗口类名称:"<< className<< std::endl;
return 0;
}
要从HWND获取窗口ID,可以使用GetWindowLong
函数。该函数的原型如下:
LONG GetWindowLong(
HWND hWnd,
int nIndex
);
参数说明:
hWnd
:目标窗口的句柄。nIndex
:要检索的值的偏移量。在这种情况下,应该是GWL_ID
,其值为-12
。示例代码:
#include<Windows.h>
#include<iostream>
int GetWindowIDFromHWND(HWND hwnd) {
return GetWindowLong(hwnd, GWL_ID);
}
int main() {
HWND hwnd = FindWindow(NULL, "计算器");
int windowID = GetWindowIDFromHWND(hwnd);
std::cout << "窗口ID:"<< windowID<< std::endl;
return 0;
}
以上就是从HWND获取窗口类名称和ID的方法。
云+社区技术沙龙[第10期]
腾讯技术开放日
腾讯位置服务技术沙龙
云+未来峰会
云+社区技术沙龙[第3期]
云+社区技术沙龙 [第30期]
Elastic 中国开发者大会
小程序云开发官方直播课(应用开发实战)
领取专属 10元无门槛券
手把手带您无忧上云