导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

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

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

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


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

请大家帮我看看,谢谢
...全文
133 点赞 收藏 22
写回复
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
帮顶
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

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