21xrx.com
2024-12-22 16:53:35 Sunday
登录
文章检索 我的文章 写文章
如何在C++中获取窗口句柄
2023-07-14 20:09:34 深夜i     --     --
C++ 窗口句柄 获取

在C++编程中,要实现窗口相关的操作,如窗口的创建、关闭、最大化和最小化等,需要获取窗口的句柄。窗口句柄是一个唯一的标识符,用来标识特定的窗口。

下面是在C++中获取窗口句柄的几种方法:

1. 使用FindWindow函数

FindWindow函数可以根据窗口类名和窗口标题获取窗口句柄。该函数的原型如下:

HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName);

其中,lpClassName表示窗口类名,lpWindowName表示窗口标题。如果只需要根据一个参数获取句柄,另一个参数可以传递为NULL。

例如,以下代码可以获取记事本窗口的句柄:

HWND hNotepad = FindWindow("Notepad", NULL);

2. 使用GetActiveWindow函数

GetActiveWindow函数可以获取当前处于活动状态的窗口的句柄。例如,以下代码可以获取当前活动的窗口的句柄:

HWND hWnd = GetActiveWindow();

3. 使用GetForegroundWindow函数

GetForegroundWindow函数可以获取当前前景窗口的句柄。前景窗口是指当前接受键盘输入的窗口。例如,以下代码可以获取当前前景窗口的句柄:

HWND hWnd = GetForegroundWindow();

4. 使用EnumWindows函数

EnumWindows函数可以枚举所有的顶级窗口,并将每个窗口的句柄传递给回调函数。回调函数中可以根据需要对窗口进行操作。例如,以下代码可以枚举所有的窗口,并输出它们的标题和句柄:

BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam) {

  TCHAR szWindowTitle[MAX_PATH];

  GetWindowText(hWnd, szWindowTitle, MAX_PATH);

  _tprintf(_T("Found window: %s (HWND: %p)\n"), szWindowTitle, hWnd);

  return TRUE;

}

EnumWindows(EnumWindowsProc, NULL);

获取窗口句柄是窗口编程中的基础操作。使用以上方法可以方便地获取窗口句柄,并进行其他操作,如获取窗口尺寸和位置、修改窗口属性等。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复