怎么获得当前拥有键盘焦点的窗口 的上一个窗口句柄,就是过去的窗口。比如我打开了扫雷,又打开记事本,怎么在激活记事本的情况下得到扫雷的句柄啊?注意!这只是举个例子,并不是要那种FindWindow(NULL,"扫雷")!

解决方案 »

  1.   

    这个你需要知道一点特征,然后可以EnumWindows等枚举所有窗口..
      

  2.   

    EnumWindows();枚举窗口,Z-order顺序
      

  3.   

    或者这样
    TCHAR szWindow[MAX_PATH] = {0};
    HWND hWnd = ::GetWindow(GetSafeHwnd(), GW_HWNDNEXT);
    while(hWnd)
    {
    if(::IsWindowVisible(hWnd))
    {
    ::GetWindowText(hWnd, szWindow, MAX_PATH);
    AfxMessageBox(szWindow);
    break;
    }
    hWnd = ::GetWindow(hWnd, GW_HWNDNEXT);
    }
      

  4.   


    HWND hWnd = GetForegroundWindow();
    while(hWnd != NULL)
    {
    hWnd = GetWindow(hWnd,GW_HWNDNEXT);
    if(IsWindowVisible(hWnd))
    break;
    }