正文

激活另一个进程的窗口(转载)2010-04-05 22:10:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yuqiexing/50894.html

分享到:

问题: 我要在我的系统(假如当前窗口是A)里面用vba   的方法打开word的窗口(B窗口),但是打开后发现Word窗口不是活动的,A窗口依然是活动窗口,但是发现B窗口已经在任务栏上打开了,有时候即使能显示B窗口,但是你只要按键盘,发现活动窗口立即转到了A窗口上,让我无可奈何。   


      于是我通过FindWindow的方法来获取当前打开的B窗口的句柄(能够正确获取到),但是后面无论用SetActiveWindow、SetFocus、ShowWindow等方法来设置把B窗口设置为活动窗口,但是没有一个能行的,请大家教教我。

 

解答:

光找到WORD的主窗口不行,还要处理其子窗口。可以这样做:   
    
  CWnd   *pMainWnd,*pSubWnd;   
  pMainWnd=CWnd::FindWindow(_T("WORD窗口类型"),"WORD窗口名");   


  if   (pMainWnd)   
  {      

      pSubWnd=pMainWnd->GetLastActivePopup();   
      pMainWnd->ShowWindow(SW_SHOW);   
      pSubWnd->SetForegroundWindow();   
   }
   

阅读(4497) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册