我想通过程序控制,使一个Word文档滚动起来,请问如何实现?我试过了给指定的Word窗口发送WM_VSCROLL消息,可是不行。请问哪位知道如何实现??谢谢!我想实现的东西,简单来说,可以抽象成下面的函数:void ScrollWord(HWND hWndWord)
{
// 调用该函数,则使句柄hWndWord对应的Word文档的
// 滚动条从最顶部逐步滚动到最底部,每次滚动一屏幕,
// Word主窗口的文档内容也应随着滚动条的滚动而相应滚动
}
{
// 调用该函数,则使句柄hWndWord对应的Word文档的
// 滚动条从最顶部逐步滚动到最底部,每次滚动一屏幕,
// Word主窗口的文档内容也应随着滚动条的滚动而相应滚动
}
选择添加_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));
wordApp.CreateDispatch("word.Application");它总是返回FALSE,查了一下MSDN,表示该函数运行失败,请问这是怎么回事呢?
OLE我不熟悉,谢谢!
400分,谢谢你了!http://community.csdn.net/Expert/TopicView3.asp?id=4145359http://community.csdn.net/Expert/TopicView3.asp?id=4145362