【IE控件】如何禁用ie的保存提示

liumeiqinyang 2009-05-22 05:04:29
使用IE控件打开的本地html文件,网页被编辑后,在未保存时打开新的页面,会弹出来保存提示,这个提示能不能去掉?或者是可设置的?

提示描述如下,
该文档已被修改,是否保存修改结果?
是:保存修改结果
否:放弃修改结果
取消:仍打开该文档
...全文
218 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
x44cx 2009-09-15
  • 打赏
  • 举报
回复
ZZZZZ
liumeiqinyang 2009-05-23
  • 打赏
  • 举报
回复
我是使用了一个ie控件,封装类htmlCtrlEdit,来操作outlook的邮件签名文件,在ie控件里显示签名的htm文件,然后允许编辑,可以保存。
在修改了源代码后,切换到其他的页面,会有保存提示,选保存。然后再切换到原来的页面,不做任何修改,此时再切换页面,依然提示保存。每次这样切换,都提示。
但是对于正宗的html文档,保存后则不会再提示。
通过outlook创建的签名,包括一个htm文件,一个rtf,一个txt,不知道与此是否有关。不知道是否这三个文件有什么关联?
jameshooo 2009-05-23
  • 打赏
  • 举报
回复
用在Office中?切换页面?你描述一下使用过程。
liumeiqinyang 2009-05-23
  • 打赏
  • 举报
回复
是设计模式。
我正是需要能够修改然后保存。对于正常的html文档,修改保存后没有问题。
但是对于office之类的htm文档,修改保存,再打开,不做修改,再切换页面时,依然弹出提示保存框。
蒋晟 2009-05-23
  • 打赏
  • 举报
回复
这个是设计模式才出来的吧?可以切换到浏览模式
也可以用IPersistFile直接保存HTML
liumeiqinyang 2009-05-23
  • 打赏
  • 举报
回复
切换页面是使用navigate打开另外的url。
虽然刚才测试没有弹出来,但是这很奇怪。我再按照胡大哥的提示来做个测试看看。
谢谢胡大哥
jameshooo 2009-05-23
  • 打赏
  • 举报
回复
切换页面是如何发生的?
1、尝试捕获BeforeNavigate事件,下面的操作在此事件中调用。如果是在自己的代码中执行页面切换,在切换之前也尝试执行下面的判断。
2、从Document查询IPersistStream接口。调用一次IPersistStream::IsDirty,验证文档是否需要保存。
3、实现一个什么都不做的IStream接口,调用IPersistStream::Save(pStream, TRUE);
liumeiqinyang 2009-05-23
  • 打赏
  • 举报
回复
很是奇怪,之前试了下载的代码和自己的测试代码,都是office的htm切换时总是会提示,屡试不爽。
刚才又试了一下,居然都是好了,点击保存之后再切换不再提示。
我不知道这是怎么回事。不过先能满足需求再说。
先结贴,谢谢oyljerry,胡大哥,jiangsheng大哥。
liumeiqinyang 2009-05-22
  • 打赏
  • 举报
回复
IDM_SAVE
Shows the File Save dialog

OLECMDID_SAVE
File menu, Save command
是msdn的解释。

但是在弹出那个提示框的前后都没有去执行IDM_SAVE。
而OLECMDID_SAVE,网上说是修改了当前浏览的网页后保存用的,
看起来与我的需求符合,我还不知道该如何使用这个命令
liumeiqinyang 2009-05-22
  • 打赏
  • 举报
回复
部分没有执行。
OLECMDID_?代码里好像没有这类的命令,我去查查msdn
jameshooo 2009-05-22
  • 打赏
  • 举报
回复
命令ID应该是OLECMDID_SAVE吧。你的Exec是一直没执行还是部分命令没执行?
liumeiqinyang 2009-05-22
  • 打赏
  • 举报
回复
代码里有IOleCommandTarget::Exec的执行,但是点击保存选项时,并没有去执行Exec。
这个IDM_SAVE命令,在哪些情况下被执行?

我其实是不想让那个提示框弹出来,但是该如何调用那个ShowMessage?
jameshooo 2009-05-22
  • 打赏
  • 举报
回复
容器实现IOleCommandTarget就能拦截,当Exec被执行并且命令ID是保存命令时,直接返回S_OK。
liumeiqinyang 2009-05-22
  • 打赏
  • 举报
回复
拦截IOleCommandTarget的Exec调用,屏蔽SAVE操作
是处理IDM_SAVE吗?
如何拦截,直接返回?
liumeiqinyang 2009-05-22
  • 打赏
  • 举报
回复
是IDocHostShowUI::ShowMessage吧?
子类化后,怎么使ShowMessage能够被调用?

jameshooo 2009-05-22
  • 打赏
  • 举报
回复
拦截IOleCommandTarget的Exec调用,屏蔽SAVE操作。
oyljerry 2009-05-22
  • 打赏
  • 举报
回复
IDocHostUIHandler::ShowMessage()

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧