Ресурсы HTML

   
На этом шаге мы рассмотрим использование ресурсов в проектах.

   
Можно включать в свой проект HTML-страницы в виде ресурсов наподобие растровых изображений или
шаблонов диалога. HTML-ресурсы можно сохранять в виде HTML-файлов в папке res проекта
или помещать в описание ресурсов проекта (RC-файл). В любом случае HTML-ресурс разрешается
редактировать в Visual C++. Поскольку эти ресурсы непосредственно компилируются в исполняемую
программу, это позволяет безопасно и удобно распространять вместе в приложением все нужные для его работы
HTML-страницы. Сейчас мы включим в приложение в качестве ресурса уже рассмотренные в
предыдущих шагах файлы MyPage.htm и SecondPage.htm.

  • Добавление HTML-ресурсов в проект MyHtmlApp.
  • В ResourceView щелкните правой кнопкой мыши узел MyHtmlApp resources и в контекстном
    меню выберите Import.
  • В диалоговом окне Import Resource в поле Files of type укажите HTML files (.htm; .html).
    Найдите файл MyPage.htm и щелкните Import.
  • В окне редактирования откроется исходный HTML-текст. Обратите внимание на цветную подсветку синтаксиса HTML.
    Рис.1. Добавленный файл MyPage.htm
  • Щелкните правой кнопкой мыши добавленный ресурс IDR_HTML1 и затем - Properties.
  • Измените имя ресурса на IDR_MYPAGE. Обратите внимание на флажок External file, задающий
    форму сохранения ресурса - в виде файла в RES-папке проекта или в RC-файле. Оставьте этот флажок установленным.
  • Повторите предыдущие действия и добавьте файл SecondPage.htm в качестве ресурса IDR_SECONDPAGE.
  • Для отображения HTML-ресурса в Вашем приложении обратитесь к функции CHtmlView::LoadFromResource(), как показано ниже.

  • Отображение HTML-pecypca.
  • Найдите функцию CMyHtmlAppView::OnInitialUpdate(). Закомментируйте строку:
       Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL);
    

    а в следующей строке добавьте такой код:

      LoadFromResource(IDR_MYPAGE);
    
  • Соберите и запустите приложение MyHtmlApp. Проверьте корректность отображения
    HTML-ресурса IDR_MYPAGE.

   
То, что Вы видите, - откомпилированная версия файла MyPage.htm. А это означает, что как бы Вы не модифицировали
HTML-код файла MyPage.htm, эти изменения отразятся в приложении только после его повторной сборки.
Кроме того, диалоговое окно View Links не сможет найти и отобразить ссылки этой страницы.

   
Также обратите внимание, что невозможен переход по ссылке на другую локальную страницу. Причина в том, что ссылка указывает на
внешний файл с расширением .htm:

<a name="11" href= "SecondPage.htm"> ссылка на локальный документ</a>

   
Вам придется отредактировать ее, чтобы она указывала на ресурс IDR_SECONDPAGE. Internet Explorer предоставляет
протокол res:, по синтаксису напоминающий HTTP-протокол. С его помощью можно определить URL-адрес ресурса,
скомпонованного с ЕХЕ или DLL файлом. Протокол res: имеет следующий формат:

  гes://файл_ресурса/[тип_ресурса]/идентификатор_ресурса

   
В этом протоколе файл_ресурса - имя ЕХЕ- или DLL-файла с ресурсом, a
тип_pecypca - необязательное числовое значение, указывающее на тип ресурса. Наиболее часто применяются
значения 23 (HTML-страница) и 2 (растровое изображение). Числовой идентификатор ресурса задается в
идентификатор_ресурса. Файл winuser.h папке Microsoft Visual Studio\Vc98\Include содержит
полный список типов ресурса в виде перечисления констант с префиксом RT_. Если тип не указан, то
используется значение по умолчанию - 23.

   
Отредактируем ссылки на страницах HTML-pecyрса для применения протокола res:.

  • Переадресация ссылок.
  • В ResourceView щелкните правой кнопкой мыши узел MyHtmlApp resources. В контекстном меню
    выберите Resource Symbols, чтобы открыть диалоговое окно Resource Symbols.


    Рис.2. Окно Resource Symbols

  • Запишите числовые значения, присвоенные идентификаторам ресурсов IDR_ MYPAGE и
    IDR_SECONDPAGE. Закройте диалоговое окно Resource Symbols.
  • Дважды щелкните идентификатор IDR_MYPAGE, чтобы перейти к редактированию исходного текста HTML.
    Замените следующее определение ссылки:

        <A HREF= "SecondPage.htm"> ссылка на локальный документ </A>
    

    на:

        <A HREF= "res://MyHtmlApp.exe/n>
    

    где n - номер, присвоенный идентификатору ресурса IDR_SECONDPAGE.

  • Отредактируйте ресурс IDR_SECONDPAGE, заменив следующее определение ссылки:
        <A HREF="MyPage.htm"> здесь </A>
    

    на:

        <A HREF=" res://MyHtmlApp. ехе//n"> здесь </A>
    

    где n - номер, присвоенный идентификатору ресурса IDR_MYPAGE.

  • Соберите и запустите приложение MyHtmlApp. Убедитесь в корректности перехода по ссылкам на
    страницы MyPage и SecondPage.

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

   
На следующем шаге мы рассмотрим создание элемента управления средствами ATL.



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

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