MFC-приложения в стиле Web-браузера

   
На этом шаге мы рассмотрим создание Web-браузера.

   
Microsoft WebBrowser - стандартный элемент управления на базе ActiveX, а это значит, что Вы можете
вставить его в свой MFC-проект, воспользовавшись Components and Controls Gallery. В результате
будет создан класс CWebBrowser2, служащий оболочкой для интерфейса IWebBrowser2 Automation,
предоставляемого элементом управления WebBrowser. Этот класс позволяет считывать/задавать свойства
и вызывать методы, применяя типы C++, а не Automation.

   
Однако предпочтительнее создавать приложения в стиле Web-браузера мастером MFC AppWizard,
определяя СHtmlView как класс представления. CHtmlView - производный от класса CView,
он обеспечивает функциональность элемента управления WebBrowser в контексте MFC-архитектуры
"документ/вид". CHtmlView содержит функции-члены, позволяющие Вам обращаться к возможностям браузера
из кода программы.

   
Создадим приложение в стиле Web-браузера средствами MFC AppWizard.

  • Создание приложения MyHtmlApp.
  • В меню File выберите команду New, чтобы создать новый проект MFC AppWizard (exe) по имени MyHtmlApp.
  • В окне 1 мастера MFC AppWizard щелкните пункт Single document.
  • В окнах 2-5 согласитесь с выбранными по умолчанию параметрами.
  • В окне 6 в поле Base class щелкните CHtmlView. Щелкните Finish, а затем - ОК,
    чтобы завершить создание проекта.

   
Создав проект, в ClassView раскройте класс CMyHtmlAppView.-Дважды щелкните функцию OnInitialUpdate для
просмотра ее кода. Он должен иметь следующий вид:

void CMyHtmlAppView::OnInitialUpdate() 
{
  CHtmlView::OnInitialUpdate();
  // TODO: This code navigates to a popular spot on the Web-
  // Change the code to go where you'd like.
  Navigate2(_T("http://www.microsoft.com/visualc/"),NULL, NULL);
}

   
OnInitialUpdate вызывает функцию CHtmlView::Navigate2() для нахождения и отображения в основном окне
приложения домашней страницы Visual C++ с Web-узла Microsoft. Если Ваш компьютер не
подключен к Интернету, Вы можете изменить функцию Navigate2() для отображения файла MyPage.htm. Если считать, что файл
Муpage.htm находится в папке C:\TEMP, строка должна выглядеть следующим образом:

  Navigate2(_T("c:\\TEMP\\MyPage.htm"), NULL, NULL);

   
Прежде чем собрать и запустить приложение MyHtmlApp, добавьте кнопки Forward и Back,
выполнив следующие действия.

  • Добавление меню и команд.
  • В ResourceView в узле Menu откройте ресурс меню IDR_MAINFRAME.
  • Удалите меню Edit, а на его место добавьте новое меню с заголовком &Go.
  • Добавьте в это меню две команды - &Васк и &Forward. Задайте для них соответствующие строки
    подсказки. Пусть редактор создаст заданные по умолчанию идентификаторы ID_GO_BACK и ID_GO_FORWARD.
  • Закройте редактор меню. Откройте ресурс панели инструментов IDR_MAINFRAME. Удалите кнопки Cut,
    Copy и Paste, переместив их за пределы панели.
  • Создайте кнопки для идентификаторов команд ID_GO_BACK и ID_GO_FORWARD, как показано на
    рисунке 1.


    Рис.1. Кнопки Назад и Вперед

  • Закройте редактор панелей инструментов. Откройте ClassWizard и щелкните вкладку Message Maps.
  • В класс CMyHtmlAppView добавьте обработчики команд для идентификаторов ID_GO_BACK и
    ID_GO_FORWARD, назвав их ОnGoBack() и OnGoForward() соответственно. Приступите к
    редактированию кода функций, щелкнув Edit Code.
  • В каждой из функций-обработчиков добавьте вызов соответствющей функции-члена класса CHtmlView:
    void CMyHtmlAppView::OnGoBack() 
    {
      GoBack(); 
    }
    void CMyHtmlAppView::OnGoForward() 
    {
      GoForward(); 
    }
    


    Рис.2. Функции-обработчики

  • Соберите и запустите приложение. Откроется страница, заданная по умолчанию реализации функции
    CMyHtmlAppView::OnInitialUpdate().

   
Исследуйте особенности браузера, предоставленного Вашему приложению классом CHtmlView. Обратите
внимание, что строка состояния приложения отображает информацию о ссылках и процессе загрузки страницы. После
нескольких переходов по ссылкам на другие страницы Вы получите возможность передвигаться по списку просмотренных
страниц вперед и назад, пользуясь кнопками GoВасk и GoForward созданного Вами меню.

   
Созданное приложение можно взять здесь (38,9 Кб).

   
На следующем шаге мы рассмотрим доступ к объектной модели DHTML.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий