Шаг 236.
Среда программирования Visual C++.
Создание сервера ActiveX-документов (окончание)
На этом шаге мы закончим создание сервера ActiveX-документов.
- Создание и реализация команды меню Edit String.
- Отредактируйте ресурс меню IDR_MAINFRAME. В меню Edit удалите команду Undo,
заменив ее новой командой с заголовком &String. Создайте соответствующую строку подсказки.
Примите заданный по умолчанию идентификатор команды ID_EDITSTRING.
- Отредактируйте панель инструментов IDR_MAINFRAME. Создайте на панели простую кнопку для
представления текстового ввода. Присвойте идентификатору команды новой кнопки значение ID_EDIT_STRING.
Рис.1. Создание кнопки на панели инструментов
- В начало файла MyADSAppDoc.cpp добавьте следующую строку:
#include "EditStringDlg.h"
- В классе CMyADSAppDoc создайте обработчик команды с идентификатором ID_EDIT_STRING.
Назовите эту функцию OnEditString() и реализуйте ее следующим образом:
Рис.2. Создание функции OnEditString()
void CMyADSAppDoe::OnEditString()
{
CEditStringDlg myDialog;
myDialog.m_newstring = m_strDisplay;
if (myDialog.DoModal() == IDOK &&
myDialog.m_newstring != m_strDisplay)
{
m_strDisplay = myDialog.m_newstring;
UpdateAllViews(NULL);
SetModifiedFlag();
}
}
Эта функция отображает диалоговое окно Set Display String, в котором пользователь вводит строку для последующего отображения
ее приложением. Строка хранится в переменной CMyADSAppDoc::m_strDisplay.
- Реализация функции отображения приложения.
- Найдите функцию CMyADSAppView::OnDraw(). Замените строку комментарием // TODO следующим кодом:
CFont HeadingFont;
if(HeadingFont.CreateFont(64, 0, 0,
0, FW_NORMAL, 1, 0, 0, 0, 0, 0, 0, FF_DECORATIVE, 0))
pDC->SelectObject(&HeadingFont);
pDC->TextOut(10, 10, pDoc->m_strDisplay);
Если сейчас собрать и запустить приложение CMyADSApp, оно будет прекрасно работать в качестве автономного приложения.
Вы сможете выбрать команду String из меню Edit и добавить строку, отображаемую в основном окне программы,
а также сохранить эту строку в файле документа с расширением *.ads.
Попытавшись загрузить сохраненный ADS-файл в контейнер ActiveX-документов, например в Internet Explorer,
Вы увидите, что строка отображается нормально, но команда String меню Edit стала недоступной. Причина в том, что
контейнер ActiveX-документов не загружает команды меню и кнопки панели инструментов из ресурса
IDR_MAINFRAME.
При создании сервера ActiveX-документов мастер АррWizard вставляет в проект дополнительное меню и ресурсы панели
инструментов с одинаковыми идентификаторами IDR_SRVR_INPLACE. Команды меню IDR_SRVR_INPLACE помещаются в
меню контейнера, а панель инструментов IDR_SRVR_INPLACE добавляется к панелям инструментов, отображаемым приложением-контейнером.
Теперь надо отредактировать меню IDR_SRVR_INPLACE и панель инструментов так, чтобы команда String меню Edit стала
доступной в меню контейнера.
- Редактирование меню и панели инструментов IDR_SRVR_INPLACE.
- В ResourceView дважды щелкните меню IDR_SRVR_INPLACE. Отредактируйте свойства
пункта меню для команды Undo меню Edit. Измените заголовок пункта меню на &String, а
идентификатор - на ID_EDIT_STRING. Строка подсказки изменится автоматически при закрытии диалогового
окна Menu Item Properties.
- Отредактируйте ресурс панели инструментов IDR_SRVR_INPLACE. Создайте новую кнопку - копию кнопки,
созданной для ресурса IDR_MAINFRAME (Вы можете скопировать и вставить ее из соответствующего окна).
Присвойте кнопке идентификатор ID_ EDIT_STRING.
- Соберите и запустите приложение CMyADSApp. Для отображения строки "Hello World!" в основном
окне приложения воспользуйтесь командой String меню Edit. Закройте приложение и, получив предложение сохранить файл,
запишите его под именем Hello.ads.
- Запустите Internet Explorer. В Проводнике найдите файл Hello.ads и перетащите его в окно браузера.
Если откроется информационное окно File Download (Открыть или сохранить этот файл?), выберите
Open this file from the current location (Открыть) и щелкните ОК. Файл должен выглядеть так, как
показано на рисунке 3.
Рис.3. Документ Hello.ads, открытый в Internet Explorer
- Убедитесь в доступности команды String меню Edit для изменения строки, отображаемой в документе. В
Internet Explorer щелкните кнопку Back (Назад), чтобы вернуться к предыдущей странице. В
открывшемся информационном окне с запросом на сохранение измененного документа щелкните No (Нет).
Созданное приложение можно взять
здесь (52,1 Кб).
На следующем шаге мы рассмотрим размещение ActiveX-документа на Web-узле.
Предыдущий шаг
Содержание
Следующий шаг