CHTMLVIEW编辑模式下如何判断修改状态? 我试了一下CHTMLVIEW视图下m_pDocument中的ismodify怎么不能用。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是否被更改其他人没有办法帮你判断,你必须自己判断是否进行了修改,在某一时刻如果用户更改了文档,你就在程序中调用文档的SetModifyFlag函数即可。 是否被更改其他人没有办法帮你判断,你必须自己判断是否进行了修改,在某一时刻如果用户更改了文档,你就在程序中调用文档的SetModifyFlag函数即可。SetModifyFlag为什么不能用? 这样做是不行的, setmodifyflag 方法是跟document-view 模型相关的。而现在CHTMLView下的内容是在 IWebBrowser 控件所管制,所以需要结合 IStream 接口的脏位标识,自己写一个跟业务相关的方法.参考: BOOL CHtmlView::IsModified(BOOL bFlag){ ///////////////////////////////new CString cStr1,cStr2; cStr1 = m_Doc; //原先 document文档的内容,保留一份。 HRESULT m_hResult; IPersistStreamInit* spPSI = NULL; CStreamOnCString stream; if(NULL != m_pHTMLDoc2) { m_hResult = m_pHTMLDoc2->QueryInterface(IID_IPersistStreamInit, (void**)&spPSI); if( SUCCEEDED(m_hResult) && spPSI ) { m_hResult = spPSI->Save(static_cast<IStream*>(&stream), TRUE); if (m_hResult == S_OK) {//取出当前流的内容 if (!stream.CopyData(cStr2)) m_hResult = E_OUTOFMEMORY; } spPSI->Release(); } if(bFlag)//取消脏位, 并保留新的文档 { m_Doc = cStr2; } if(cStr2.Compare(cStr1) != 0 ) //与保留的文档进行比较。 { return TRUE; } } return FALSE;} vc共享dll和静态链接库 edit的问题 关于fread 又是SNMP的问题!!希望高手进来!! 连接http服务器下载一个文件只能用SOCK_STREAM 基于无连接的udp可以做吗?怎么做? 用ADO进行数据库访问,RECORDSET的问题 请问:我想在一个方框外面绘图,应该怎么设置ClipRgn,谢谢. 我的滚动条为何不滚动?! 请教关于文本操作的问题! OpenGL红皮书中的代码怎么在VC6.0中编译运行? 弱弱的问一个关于.rc的问题 【醒目】新年散分贴
BOOL CHtmlView::IsModified(BOOL bFlag)
{
///////////////////////////////new
CString cStr1,cStr2;
cStr1 = m_Doc; //原先 document文档的内容,保留一份。 HRESULT m_hResult;
IPersistStreamInit* spPSI = NULL;
CStreamOnCString stream; if(NULL != m_pHTMLDoc2)
{
m_hResult = m_pHTMLDoc2->QueryInterface(IID_IPersistStreamInit, (void**)&spPSI);
if( SUCCEEDED(m_hResult) && spPSI )
{
m_hResult = spPSI->Save(static_cast<IStream*>(&stream), TRUE);
if (m_hResult == S_OK)
{
//取出当前流的内容
if (!stream.CopyData(cStr2))
m_hResult = E_OUTOFMEMORY;
}
spPSI->Release();
} if(bFlag)//取消脏位, 并保留新的文档
{
m_Doc = cStr2;
} if(cStr2.Compare(cStr1) != 0 ) //与保留的文档进行比较。
{
return TRUE;
}
}
return FALSE;
}