请教B程序怎么获取A程序的cwnd。A程序没有标题、菜单,但是里面有setwindowText("MYDLG"),能不能用findwindow(NULL,"MYDLG")?或者各位有什么其他的方法?cwnd findwindow

解决方案 »

  1.   

    HWND FindWindow( 
      LPCTSTR lpClassName, 
      LPCTSTR lpWindowName 
    );枚举所有窗口。。
      

  2.   

    应该不行,用FindWindow(class名,NULL)查查试试,或者通过进程ID获取窗口句柄VC由进程ID获取窗口句柄HWND GetWindowHandleByPID(DWORD dwProcessID){    HWND h = GetTopWindow(0);    while ( h )    {        DWORD pid = 0;        DWORD dwTheardId = GetWindowThreadProcessId( h,&pid);         if (dwTheardId != 0)        {            if ( pid == dwProcessID/*your process id*/ )            {                // here h is the handle to the window                return h;            }        }          h = GetNextWindow( h , GW_HWNDNEXT);    }     return NULL;}
      

  3.   

    “请教B程序怎么获取A程序的cwnd”
    进程外。
    把 鼠标 移到 A程序 内:
    WindowFromPoint
      

  4.   

    不显示又不代表没有。FindWindow为啥不行?
      

  5.   

    不好意思这几天有点事。
    1楼 FindWindow枚举所有窗口但是不知道怎么确定找到了程序
    2楼 FindWindow(class名,NULL)无标题类名都是#32..。试过通过进程ID获取窗口句柄没成功
    3楼 WindowFromPoint这个没试过,程序被其他窗口挡住,没有焦点也可以吗?
    4楼 没有标题和类名FindWindow就有点麻烦
    5楼 Spy++查找无标题类名都是#32..标题都为空