我的找到了所有的属性可见VISIBLE和父级窗口PARENT,可是我还是没法知道那个窗口是当前的窗口,就是标题栏是蓝色的窗口,那位大虾帮帮忙?

解决方案 »

  1.   

    HWND GetActiveWindow(VOID);
    该API函数可以帮助你找到当前激活的窗口句柄,然后就可以对其进行操作!
      

  2.   

    1.if(GetForegroundWindow()!=this)
    {
    我的程序不是当前。
    }
    2.其实我想你一定是想知道,你的程序是否在当前对吧?
    也可以用这种方法。
    BOOL CUimmDlg::IsFront()
    {
    CRect rect;
    GetWindowRect(rect);
    CPoint pt;
    pt = rect.CenterPoint();
    CWnd *pWnd = WindowFromPoint(pt);
    CWnd *pOld = pWnd;
    if(pWnd )
    {
    while(pWnd)
    {
    pOld = pWnd;
    pWnd = pWnd->GetParent();
    }
    if(pOld->GetSafeHwnd() == this->GetSafeHwnd())
    {
    return true;
    }
    }
    return false;
    }
      

  3.   

    多些楼上各位。我是想做个程序监视当前窗口。如果用 cadinfo(无语清风)所说的,请看我的代码(一个控制台工程)#include "stdafx.h"int main(int argc, char* argv[])
    {

            HWND hwnd  = NULL;
    LPTSTR lpString = NULL;  // text buffer
    int num;


    for(;;){

    hwnd2 = GetActiveWindow();
    printf("hwnd is %d\n",hwnd); num = GetWindowText(hwnd,lpString,GetWindowTextLength(hwnd)+1); printf("num is %d\n",num);
    printf("The top window is %s\n",lpString); printf("----\n\n");
    hwnd = 0;
    Sleep(2000);
    }
    return 0;
    }运行的时候结果都是0,大虾请继续关照谢谢!
      

  4.   

    解决了,用GetForgroundWindow可以找到当前工作的窗口。谢谢各位,结贴!