我一直在玩this webbrowser control example
我让它工作并使用ON_WM_TIMER添加了一些计时器。
现在我想将受保护的CMyBrowserView类中定义的m_Browser(CWebBrowser类实例)访问到另一个类中。 (例如代码示例中的CMyBrowserApp)并使用.Navigate和其他函数。
我该怎么做?
(我使用visual studio 6 c ++)
答案 0 :(得分:0)
可能的解决方案是将函数CWebBrowser* GetBrowser() { return &m_BrowserView.m_Browser; }
添加到CMyBrowserApp
类。
答案 1 :(得分:0)
创建CMyBrowserView的子类,并为您想要的每个事物添加一个方法 浏览器要做。该方法应该在m_Browser上调用适当的方法。
E.g。
class CBrowserViewEx : public CMyBrowserView
{
...
void Navigate(LPCTSTR URL, VARIANT* Flags,
VARIANT* TargetFrameName, VARIANT* PostData,
VARIANT* Headers)
{
m_Browser.Navigate(URL, Flags, TargetFrameName, PostData, Headers);
}
...
}
通过这种方式,您可以从外部访问该功能,但仍限制谁可以使用浏览器控件执行操作,并且您可以根据需要添加额外的包装代码(例如参数检查)。
(编辑)另请注意,您需要更改MyBrowser.cpp中的代码以将新视图名称传递给新的CSingleDocTemplate,以便MFC自动为您创建新视图。