关于CWebBrowser2 的链接URL的问题

ysm_nsi 2002-07-05 03:23:49
我用CWebBrowser2作了一个简单的浏览器。我不想在用户点网页的某一个链接的时候,系统调用IE来重开一个网页。所以我重载了OnNewWindow2()函数,让Cancel=true。我想捕获用户点鼠标时的消息,通过获得用户所点的URL来重新调用Navigate()函数,刷新网页。如何通过鼠标消息(或其他办法)来获得URL??谢谢了
...全文
412 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingzai 2002-07-05
  • 打赏
  • 举报
回复
//first,get url, i use CWebBrowser2 control,or you can use IWebBrowser2::get_LocationURL method
//sample code:
IHTMLElementCollection *objAllElement=NULL;
IHTMLDocument2 *objDocument=NULL;
CString strUrl,strTemp;
strUrl=m_ctrlWeb.GetLocationURL();//get URL
if(strUrl.IsEmpty())
return;
objDocument=(IHTMLDocument2 *)m_ctrlWeb.GetDocument(); objDocument->get_all(&objAllElement);
if(strUrl=="http://mail.sina.com.cn/")
{
CComPtr<IDispatch>pDisp;
{
objAllElement->item(COleVariant("login"),COleVariant((long)0),&pDisp);
CComQIPtr<IHTMLFormElement , &IID_IHTMLFormElement >pElement;
if(pDisp==NULL)
{
return;
}
else
{
....
pElement=pDisp;
pElement->put_target(CComBSTR("_self")); //等效于target="_self"
pElement->put_action(CComBSTR("http://mail.sina.com.cn/cgi-bin/login.cgi"));
}

}
}
ysm_nsi 2002-07-05
  • 打赏
  • 举报
回复
补充:网页内容是在同一个对话框中的CWebBrowser2来显示,不弹出新的IE,
如何获得URL??来刷新??
ysm_nsi 2002-07-05
  • 打赏
  • 举报
回复
谢谢两位的回答。
其实我是在一个对话框中添加了一个CWebBrowser2,用户可以不断浏览网络,但是对于网页的内容是在对话框中的CWebBrowser2控件来显示的,用户点某个链接,是通过刷新CWebBrowser2的内容 ,而不是新开一个IE或其他来显示,我的最终木目的是用户浏览到某一页,“确认”时,我可以得到它的URL,用作他用
jmcooler 2002-07-05
  • 打赏
  • 举报
回复
CWebBrowser2::Navigate2方法的第三个参数,表达了用户在点击链接时是否要新起IE窗口,你可以用"_self"字符串作为参数。
签名:jmcooler
wistaria 2002-07-05
  • 打赏
  • 举报
回复
如何你的程序是多文档的,你可以用下面的代码打开一个新的FRAME来显示
新的页面
void CYourHtmlView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)
{
CWinApp* pApp = AfxGetApp();
CDocTemplate* pDocTemplate;
POSITION pos = pApp->GetFirstDocTemplatePosition();
pDocTemplate = pApp->GetNextDocTemplate(pos);
ASSERT(pDocTemplate);
CFrameWnd* pNewFrame = pDocTemplate->CreateNewFrame(GetDocument(),
(CFrameWnd*)AfxGetMainWnd());
// Activate the frame and set its active view
pDocTemplate->InitialUpdateFrame(pNewFrame, NULL);
CCGCHtmlView* pWBVw = (CCGCHtmlView*)pNewFrame->GetActiveView();
//ASSERT(pWBVw);
pWBVw->SetRegisterAsBrowser(TRUE);
*ppDisp = pWBVw->GetApplication();
}

16,472

社区成员

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

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

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