首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从HWND获取窗口类名称和ID?

从HWND获取窗口类名称和ID的方法如下:

  1. 窗口类名称:

要从HWND获取窗口类名称,可以使用GetClassName函数。该函数的原型如下:

代码语言:c++
复制
int GetClassName(
  HWND   hWnd,
  LPTSTR lpClassName,
  int    nMaxCount
);

参数说明:

  • hWnd:目标窗口的句柄。
  • lpClassName:指向接收窗口类名称的缓冲区的指针。
  • nMaxCount:缓冲区的大小,以字符为单位。

示例代码:

代码语言:c++
复制
#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;
}
  1. 窗口ID:

要从HWND获取窗口ID,可以使用GetWindowLong函数。该函数的原型如下:

代码语言:c++
复制
LONG GetWindowLong(
  HWND hWnd,
  int  nIndex
);

参数说明:

  • hWnd:目标窗口的句柄。
  • nIndex:要检索的值的偏移量。在这种情况下,应该是GWL_ID,其值为-12

示例代码:

代码语言:c++
复制
#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的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券