如何获得窗口句柄(FindWindow函数的使用)

时间:2021-03-27 18:40:19
一: 获得主窗口
HWND WINAPI FindWindow(
  _In_opt_  LPCTSTR lpClassName,
  _In_opt_  LPCTSTR lpWindowName
);
  该函数通过创建窗口时的类名和窗口名查找窗口并返回该窗口的句柄,函数不会搜索子窗口。该函数区分大小写。
 

参数

lpClassName [in, optional]

Type: LPCTSTR

类名和窗口名是在先前调用RegisterClass or RegisterClassEx创建的

如果lpClassName为NULL,他会寻找所有和lpWindowName参数匹配的窗口

lpWindowName [in, optional]

Type: LPCTSTR

窗口的名字也是窗口的title. 如果该参数为NULL,所有窗口名字都是匹配的.

返回值

Type: HWND

如果函数调用成功,返回指向该窗口的句柄; 否则返回NULL。得到更多的错误信息调用GetLastError

注意

如果 lpWindowName  非空, FindWindow 会调用GetWindowText 函数去得到窗口的名字作为比较

二:获得子窗口

HWND hWnd = FindWindow( NULL , "你想取得句柄对话框的标题" );
GetDlgItem( nID, &hWnd );