用 vc2010 创建 word 文档,word窗口有时在前面,有时显示在后面看不见,要在任务栏上点一下,才被激活。客户还以为没有创建出来。主要代码如下。 CApplication capp;
CDocuments cdocs;
if(FALSE == capp.CreateDispatch(_T("word.application"), NULL)){
return false;
} capp.put_Visible(TRUE);请问如何让新word窗口总在最前面?我现在主要是不知道怎么从capp获取框架窗口句柄。

解决方案 »

  1.   

    不太明白,是你的应用程序创建的word文档,创建之后的状态“有时”是隐藏的?你创建之后的焦点无疑是在你应用程序上。为什么“有时”,值得研究。要显示出来,感觉你操作流程中必须应该让word文档获得焦点。
      

  2.   

    我没说清楚,是直接把WORD应用程序打开了,不是我创建的窗口。就是和咱们在桌面上直接双击word一样。操作过程是这样的,先运行我的应用程序,通过USB口获取外部机器的各种信息,生成表格和图形,点击应用程序中的“输出报表”,就执行上面我给的代码,打开word, 把图形和表格填进去。这些都实现了,但是有另外一个问题,新打开的word有时在我的应用程序的前面,有时在我的应用程序的后面(看不见了),我想把它设置成总在应用程序的前面,提高用户体验。请做过的高手指点。
      

  3.   

    没有直接获取窗口句柄的方法, HWND不是自动化支持的类型。 你可以看看WORD的对象模型, 应该有类似于窗口的COM接口, 我记得可以通过Application这个接口去获得, 好像是GetActiveWindow? 然后再去激活它
      

  4.   

    获得窗口的标题,然后::FindWindow获得窗口句柄,你就可以向这个窗口发送消息了·