问题: 我要在我的系统(假如当前窗口是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();
}
评论