哪位大侠能告诉我在MFC中怎么才能打开完整的Word文件? 哪位大侠能告诉我在MFC中怎么才能打开完整的Word文件?在SDI或MDI中怎么样才能在视图中编辑文本文件?通过什么方式才能让视图的左边是树型视图,让视图的右边为Dlg视图呢?(它们的表现形式就好象是网际快车的界面一样)那位大侠能给我一个详细的解释我将感激不尽(最好能给出一个实例) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://it.sohu.com/20040809/n221441035.shtml 通过什么方式才能让视图的左边是树型视图,让视图的右边为Dlg视图呢?静态拆分窗口Programming Windows with MFC / Jeff Prosise. -- 2nd ed 有详细介绍 在VC中控制Word的例子代码,给我33分(你一共3个问题,我解答一个)! ^_^====================下面启动word进程: _ApplicationWord* m_objWord; //初始化COM if (CoInitialize(NULL)!=0) { AfxMessageBox("初始化COM支持库失败!"); exit(1); } try { //ASSERT (NULL==m_objWord); m_objWord = new _ApplicationWord; if (!m_objWord->CreateDispatch("Word.Application", NULL)) { AfxMessageBox("不能创建Word对象!", MB_ICONSTOP); delete m_objWord; m_objWord = NULL; throw 0; return; } else{ // AfxMessageBox("成功创建Word对象!"); m_sOldDefaultPrinter = m_objWord->GetActivePrinter(); // Verify the new if(m_sOldDefaultPrinter.Find(m_sNewPrinter)<0) { m_objWord->SetActivePrinter(m_sNewPrinter); //设置当前打印机 } } } catch(COleException *oe) { oe->ReportError(); delete oe; } catch(...) { } //OLE_CATCH();===================下面使用word进程打开文件 Documents m_objDocs; _Document m_objSingleDoc; m_objDocs = m_objWord->GetDocuments(); _variant_t vSourFileName(sFileName); LPDISPATCH hResult; hResult = m_objDocs.Open( /*[in]*/&vSourFileName, /*[in] VARIANT * ConfirmConversions*/&vOptional, /*[in] VARIANT * ReadOnly*/&vTrue, /*[in] VARIANT * AddToRecentFiles*/&vFalse, /*[in] VARIANT * PasswordDocument*/&vOptional, /*[in] VARIANT * PasswordTemplate*/&vOptional, /*[in] VARIANT * Revert*/&vOptional, /*[in] VARIANT * WritePasswordDocument*/&vOptional, /*[in] VARIANT * WritePasswordTemplate*/&vOptional, /*[in] VARIANT * Format*/&vOptional,//"wdOpenFormatAuto",// /*[in] VARIANT * Encoding*/&vOptional, /*[in] VARIANT * Visible*/&vOptional /*[in] VARIANT * OpenAndRepair*///&vOptional, /*[in] VARIANT * DocumentDirection*///&vOptional, /*[in] VARIANT * NoEncodingDialog*///&vOptional, /*[out,retval]*/ //&m_objSingleDoc );=================下面结束word进程,并反初始化COM if (m_objWord) { try { COleVariant covTrue((short)TRUE), covFalse((short)FALSE); m_objWord->Quit(covFalse, // SaveChanges. covTrue, // OriginalFormat. covFalse // RouteDocument. ); m_objWord->ReleaseDispatch(); delete m_objWord; m_objWord = NULL; } catch(COleException *oe) { oe->ReportError(); delete oe; } catch(...) { } //OLE_CATCH(); } CoUninitialize(); 又遇到奇怪问题了 Singleton问题 一个很菜的问题:请问如何改变一个静态文本控件中文字颜色和背景颜色,一定要重写控件类吗? 隐藏窗口的任务栏按钮后窗口最小化的问题,有源代码。 计算机英语,大家来学习一下:) 急如火!求救!!!如果有完整的解决方案和源代码,相送!!或另有报答。高手请进》》 基于特征的人脸检测 memcpy 什么情况下导致内存泄漏? 请教有关SetEvent的问题 !!!!!!!!寻找音轨抓取程序CDCOPY和MP3压缩程序MP3 Compressor 怪事,CString的Format函数出错,请帮忙看看! 高手帮帮忙,,调试问题
Programming Windows with MFC / Jeff Prosise. -- 2nd ed
有详细介绍
下面启动word进程:
_ApplicationWord* m_objWord; //初始化COM
if (CoInitialize(NULL)!=0)
{
AfxMessageBox("初始化COM支持库失败!");
exit(1);
} try
{
//ASSERT (NULL==m_objWord);
m_objWord = new _ApplicationWord;
if (!m_objWord->CreateDispatch("Word.Application", NULL))
{
AfxMessageBox("不能创建Word对象!", MB_ICONSTOP);
delete m_objWord; m_objWord = NULL;
throw 0;
return;
}
else{
// AfxMessageBox("成功创建Word对象!");
m_sOldDefaultPrinter = m_objWord->GetActivePrinter(); // Verify the new
if(m_sOldDefaultPrinter.Find(m_sNewPrinter)<0)
{
m_objWord->SetActivePrinter(m_sNewPrinter); //设置当前打印机
}
}
}
catch(COleException *oe)
{
oe->ReportError();
delete oe;
}
catch(...)
{
}
//OLE_CATCH();===================
下面使用word进程打开文件
Documents m_objDocs;
_Document m_objSingleDoc;
m_objDocs = m_objWord->GetDocuments();
_variant_t vSourFileName(sFileName);
LPDISPATCH hResult;
hResult = m_objDocs.Open(
/*[in]*/&vSourFileName,
/*[in] VARIANT * ConfirmConversions*/&vOptional,
/*[in] VARIANT * ReadOnly*/&vTrue,
/*[in] VARIANT * AddToRecentFiles*/&vFalse,
/*[in] VARIANT * PasswordDocument*/&vOptional,
/*[in] VARIANT * PasswordTemplate*/&vOptional,
/*[in] VARIANT * Revert*/&vOptional,
/*[in] VARIANT * WritePasswordDocument*/&vOptional,
/*[in] VARIANT * WritePasswordTemplate*/&vOptional,
/*[in] VARIANT * Format*/&vOptional,//"wdOpenFormatAuto",//
/*[in] VARIANT * Encoding*/&vOptional,
/*[in] VARIANT * Visible*/&vOptional
/*[in] VARIANT * OpenAndRepair*///&vOptional,
/*[in] VARIANT * DocumentDirection*///&vOptional,
/*[in] VARIANT * NoEncodingDialog*///&vOptional,
/*[out,retval]*/ //&m_objSingleDoc
);
=================
下面结束word进程,并反初始化COM
if (m_objWord)
{
try
{
COleVariant covTrue((short)TRUE), covFalse((short)FALSE);
m_objWord->Quit(covFalse, // SaveChanges.
covTrue, // OriginalFormat.
covFalse // RouteDocument.
);
m_objWord->ReleaseDispatch();
delete m_objWord;
m_objWord = NULL;
}
catch(COleException *oe)
{
oe->ReportError();
delete oe;
}
catch(...)
{
}
//OLE_CATCH();
}
CoUninitialize();