2个chtmlview做的浏览器问题(关闭和打开)

flyskytoday 2009-08-18 03:31:26
1.关闭页面问题
打开的网页中调用这么一句window.close();
视图窗口立即被关闭,变成空白
现在我不想关闭视图,想跳转到http://www.csdn.net页面,请问如何做?

PS:关闭父窗口地话就增加一下OnParentNotify消息捕获WM_DESTROY就能一起关闭


2.默认打开问题
我在注册表中都改成用我的浏览器默认打开,但出现打开错误
比如就在本地打开一个htm文件,也是打不开,非要打开浏览器,然后输入路径才可以
我不清楚,打开时要传入什么参数等,,,
怎么设置才能正确打开

请大家帮我看看,谢谢
...全文
622 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyskytoday 2009-08-19
  • 打赏
  • 举报
回复
蒋老大就是厉害

怎么都是半夜上线啊?
难道在美国?
雪影 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jiangsheng 的回复:]
捕获DWebBrowserEvents2::WindowClosing
设置cancel为true
之后navigate
[/Quote]

mark
学习
MoXiaoRab 2009-08-19
  • 打赏
  • 举报
回复
蒋老大的IE编程技术不愧是出神入化
flyskytoday 2009-08-19
  • 打赏
  • 举报
回复
感谢,不过上面英文比较多,sigh
oyljerry 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 flyskytoday 的回复:]
再请问一下,如何在CHtmlView中添加DWebBrowserEvents2::WindowClosing事件啊?
上午到现在自己查看添加WindowClosing,都做不成功

麻烦写了下添加步骤,感谢感谢

COM不懂,正在学习呢
引用 14 楼 jiangsheng 的回复:
捕获DWebBrowserEvents2::WindowClosing
设置cancel为true
之后navigate

[/Quote]
http://topic.csdn.net/t/20060305/15/4593819.html
flyskytoday 2009-08-19
  • 打赏
  • 举报
回复
还有蒋老大这篇文章,看了还是不知道如何加WindowClosing消息
http://blog.csdn.net/jiangsheng/archive/2003/11/09/3795.aspx
jerryyu810 2009-08-19
  • 打赏
  • 举报
回复
帮顶
蒋晟 2009-08-19
  • 打赏
  • 举报
回复
捕获DWebBrowserEvents2::WindowClosing
设置cancel为true
之后navigate
flyskytoday 2009-08-19
  • 打赏
  • 举报
回复
再请问一下,如何在CHtmlView中添加DWebBrowserEvents2::WindowClosing事件啊?
上午到现在自己查看添加WindowClosing,都做不成功

麻烦写了下添加步骤,感谢感谢

COM不懂,正在学习呢
[Quote=引用 14 楼 jiangsheng 的回复:]
捕获DWebBrowserEvents2::WindowClosing
设置cancel为true
之后navigate
[/Quote]
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
不用替换,建议你去学习下蒋老大的IE编程文章,IHtmlDocument2玩得好一切OK

查找字符串,得Body,写入。你只要Write在windows.close的前面就行了,转向过去后,close不就失效了么
flyskytoday 2009-08-18
  • 打赏
  • 举报
回复
楼上的意思是?
自己写语句进去?替换Windows.close,如发现调用就转到我指定的页面?
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
你在页面载入的时候,调用IHtmlDocument2::WriteLine 把你的Navigate语句写进去,在Windows.close之前不就好了
flyskytoday 2009-08-18
  • 打赏
  • 举报
回复
是的,想让自动关闭失效,转到指定的网页
[Quote=引用 8 楼 tr0j4n 的回复:]
你是想让window.close()失效,然后转向你自己的网页,是吗?
[/Quote]
aa3000 2009-08-18
  • 打赏
  • 举报
回复
使用 GetCommandLine 就可以获得输入参数
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
你是想让window.close()失效,然后转向你自己的网页,是吗?
flyskytoday 2009-08-18
  • 打赏
  • 举报
回复
to:4L
实际情况中肯定会调用到window.close();所以是避免不了的,就是不能关闭程序本身,并且跳转到指定的网址,能捕获WM_DESTROY消息,但在里面加了跳转语句Navigate2(_T("http://127.0.0.1"),NULL,NULL);不起作用
你的第2个回答,我感觉明白一点了,马上实验一下,现在还只知道C中main做成的exe执行时可传参,还不知道mfc中是如何传递参数呢


to:6L
对window.close();消息处理,也不能叫做拦截吧
顺着看,正好看到传递参数,谢谢
MoXiaoRab 2009-08-18
  • 打赏
  • 举报
回复
1、你想拦截windows.close是吧?
2、你的EXE程序没有接受参数的地方,就算设置了打开方式也没用

CWinApp::m_lpCmdLine

Points to a null-terminated string that specifies the command line for the application.

m_lpCmdLine is a public variable of type LPTSTR.

BOOL CMyApp::InitInstance()
{
// ...

if (m_lpCmdLine[0] == _T('\0'))
{
// Create a new (empty) document.
OnFileNew();
}
else
{
// Open a file passed as the first command line parameter.
OpenDocumentFile(m_lpCmdLine);
}

// ...
}
雪影 2009-08-18
  • 打赏
  • 举报
回复
mark
帮顶。
oyljerry 2009-08-18
  • 打赏
  • 举报
回复
要么就不要调用window.close(); ,直接Navigate()导航到网页
2.关联后缀,然后html启动你的exe,同时传递文件名作为参数
hhwei1985 2009-08-18
  • 打赏
  • 举报
回复
帮顶
加载更多回复(2)

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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