Как получить доступ к экземпляру класса CWebBrowser (определенному в защищенном классе) в другом классе? C ++ - PullRequest
0 голосов
/ 18 мая 2010

Я играл с этим примером управления веб-браузером

Я заработал и добавил несколько таймеров, используя ON_WM_TIMER.

Теперь я хотел бы получить доступ к m_Browser (экземпляру класса CWebBrowser), определенному внутри защищенного класса CMyBrowserView, в другой класс. (например, CMyBrowserApp в примере кода) и использовать .Navigate и другие функции.

Как я могу это сделать?

(я использую visual studio 6 c ++)

Ответы [ 2 ]

0 голосов
/ 19 мая 2010

Создайте подкласс CMyBrowserView и добавьте метод для каждой вещи, которую вы хотите браузер делать. Метод должен вызывать соответствующий метод для m_Browser.

* 1003 Е.Г. *

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 автоматически создаст для вас новое представление.

0 голосов
/ 18 мая 2010

Возможное решение - добавить функцию CWebBrowser* GetBrowser() { return &m_BrowserView.m_Browser; } в класс CMyBrowserApp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...