OnNewWindow2 问题,高分急求,在线等

ht_qq0609 2009-02-26 05:38:43
网上看到这样一段代码,说是用于单文档和多文档的。
// Get a pointer to the application object
CWinApp* pApp = AfxGetApp();

// Get the correct document template
CDocTemplate* pDocTemplate;
POSITION pos = pApp->GetFirstDocTemplatePosition();
pDocTemplate = pApp->GetNextDocTemplate(pos);

ASSERT(pDocTemplate);

// Create the new frame
CFrameWnd* pNewFrame = pDocTemplate->CreateNewFrame(GetDocument(),
(CFrameWnd*)AfxGetMainWnd());
ASSERT(pNewFrame);

// Activate the frame and set its active view
pDocTemplate->InitialUpdateFrame(pNewFrame, NULL);

CYourView* pWBVw = (CYourView*)pNewFrame->GetActiveView();
ASSERT(pWBVw);

pWBVw->m_webBrowser.SetRegisterAsBrowser(TRUE);

*ppDisp = pWBVw->m_webBrowser.GetApplication();

我现在的程序是单文档的基于CFormView的,请问怎么套用这段代码呢?CFrameWnd需要变成CMainFrame吗?GetDocument()总是提示没有怎么办?CYourView就用我现在那个唯一的view可以吗?谢谢在线等
...全文
93 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ht_qq0609 2009-02-26
  • 打赏
  • 举报
回复
高手啊,马上结贴
oyljerry 2009-02-26
  • 打赏
  • 举报
回复
重载你的OnNewWindow2消息
在消息响应函数中添加,: 这样你的web browser中点击弹出的新窗口还是在你新的对话框中

CTestbrowserDlg* m_dlgNewWB = new CTestbrowserDlg;
m_dlgNewWB->Create(IDD_TESTBROWSER_DIALOG);
*ppDisp = m_dlgNewWB->m_ctrlWeb.GetApplication();
cnzdgs 2009-02-26
  • 打赏
  • 举报
回复
那就添加一个对话框资源和对话框,放上浏览器控件,以非模态方式创建,让浏览器控件显示新页面。
ht_qq0609 2009-02-26
  • 打赏
  • 举报
回复
谢谢你回答正确,可是我还是得不到我想要的东西啊,我想一个对话框弹出来这个页面,知道怎么弄吗?
cnzdgs 2009-02-26
  • 打赏
  • 举报
回复
这段代码要放在视图类中,CFrameWnd不用变,CYourView换成你的视图类。

3,055

社区成员

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

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