我想通过程序控制,使一个Word文档滚动起来,请问如何实现?我试过了给指定的Word窗口发送WM_VSCROLL消息,可是不行。请问哪位知道如何实现??谢谢!我想实现的东西,简单来说,可以抽象成下面的函数:void ScrollWord(HWND hWndWord)
{
   // 调用该函数,则使句柄hWndWord对应的Word文档的
   // 滚动条从最顶部逐步滚动到最底部,每次滚动一屏幕,
   // Word主窗口的文档内容也应随着滚动条的滚动而相应滚动
}

解决方案 »

  1.   

    建议参考图书:<<visual c++ 界面编程技术>>第8章
      

  2.   

    classwizard——add class from a type library, 选择msword.olb(在Office安装目录下\Office11)
    选择添加_Application、Documents 、_Document、Window几个类然后添加以下代码 
    _Application wordApp;
    wordApp.CreateDispatch("word.Application");
    Documents wordDocs;
    wordDocs.AttachDispatch(wordApp.GetDocuments());
        wordApp.SetVisible(TRUE);  //This shows the application.
    COleVariant covTrue((short)TRUE),
                      covFalse((short)FALSE),
                      covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
    _Document testDoc;
    testDoc.AttachDispatch(wordDocs.Open(
                             COleVariant("C:\\a.doc",VT_BSTR),
                             covFalse,    // Confirm Conversion.
                             covFalse,    // ReadOnly.
                             covFalse,    // AddToRecentFiles.
                             covOptional, // PasswordDocument.
                             covOptional, // PasswordTemplate.
                             covFalse,    // Revert.
                             covOptional, // WritePasswordDocument.
                             covOptional, // WritePasswordTemplate.
                             covOptional,
     covOptional,
     covOptional,
     covOptional,covOptional,covOptional,covOptional) // Format.
                             );
        Window win;
    win.AttachDispatch(testDoc.GetActiveWindow());
    win.LargeScroll(COleVariant((long)100), COleVariant((long)0), COleVariant((long)0), COleVariant((long)0));
      

  3.   

    To goodboyws(深夜不眠者) :非常感谢你提供的代码。不过我在第二行语句:
    wordApp.CreateDispatch("word.Application");它总是返回FALSE,查了一下MSDN,表示该函数运行失败,请问这是怎么回事呢?
    OLE我不熟悉,谢谢!
      

  4.   

    To goodboyws(深夜不眠者) :我明白了,我没有调用CoInitialize,谢谢了!我再另开两个帖子,请进来领分。
      

  5.   

    请goodboyws(深夜不眠者)到这两个帖子回复一下,以便于我给出另外
    400分,谢谢你了!http://community.csdn.net/Expert/TopicView3.asp?id=4145359http://community.csdn.net/Expert/TopicView3.asp?id=4145362