如何获取当前窗口句柄

获取当前窗口句柄的方法取决于当前所在的程序环境。以下是一些常见环境下获取当前窗口句柄的方法:

  1. 在 Windows 环境下,可以使用 GetForegroundWindow 函数来获取当前激活窗口的句柄。例如:
HWND hwnd = ::GetForegroundWindow();
  1. 在 MFC 程序中,可以使用 CWnd::GetForegroundWindow 函数获取当前激活窗口的 CWnd 对象,然后再使用 CWnd::GetSafeHwnd 函数获取窗口句柄。例如:
CWnd* pWnd = CWnd::GetForegroundWindow();
HWND hwnd = pWnd->GetSafeHwnd();
  1. 在 Qt 程序中,可以使用 QApplication::activeWindow 函数获取当前激活窗口的 QWidget 对象,然后再使用 QWidget::winId 函数获取窗口句柄。例如:
QWidget* pWidget = QApplication::activeWindow();
HWND hwnd = (HWND)pWidget->winId();

需要注意的是,以上方法都是获取当前激活窗口的句柄,如果需要获取当前程序主窗口的句柄,可以使用不同的方法,例如在 MFC 程序中,可以使用 AfxGetMainWnd 函数获取主窗口的指针,然后再使用 CWnd::GetSafeHwnd 函数获取窗口句柄。