2

如果我只知道窗口标题和类名的一部分,如何获得窗口的描述符?

4

2 回答 2

5

FindWindow()需要完整的标题。使用EnumWindows()GetWindow()在循环中枚举所有可用窗口,在每个窗口上调用GetClassName()GetWindowText()并将值与搜索条件进行比较,直到找到匹配项。

于 2011-10-30T02:47:27.567 回答
2

像这样的东西:

BOOL CALLBACK EnumWindowsProc( HWND hwnd, LPARAM lParam ) {
  wchar_t   lpClassName[128] = {0};
  MYSTRUCT* MS_INFO          = ( MYSTRUCT* )lParam;

  GetClassName( hwnd, lpClassName, _countof( lpClassName ) );
  if( strstr( lpClassName, MS_INFO -> lpClassName ) ) {
    wchar_t lpWindowName[128] = {0};
    GetWindowText( hwnd, lpWindowName, _countof( lpWindowName ) );

    if( strstr( lpWindowName, MS_INFO -> lpWindowName ) ) {
      ...
    }
  }
}
于 2011-10-30T17:47:49.987 回答