Изменение элемента управления DHTML в ATL
Мастер управления ATL предоставляет начальный код, чтобы создать и запустить элемент управления, а также увидеть, как методы записываются в файлах проекта и как DHTML вызывает код C++ элемента управления с помощью методов диспетчеризации. В интерфейс можно добавить любой метод отправки. Затем можно вызвать методы в ресурсе HTML.
Изменение элемента управления DHTML ATL
В представлении классов разверните проект элемента управления.
Обратите внимание, что интерфейс, заканчивающийся в пользовательском интерфейсе, имеет один метод
OnClick
. Интерфейс, который не заканчивается в пользовательском интерфейсе, не имеет методов.Добавьте метод, вызываемый
MethodInvoked
в интерфейс, который не заканчивается в пользовательском интерфейсе.Этот метод будет добавлен в интерфейс, используемый в контейнере управления для взаимодействия с контейнером контейнеров, а не в интерфейс, используемый DHTML для взаимодействия с элементом управления. Этот метод может вызываться только контейнером.
Найдите метод stubbed-out в файле .cpp и добавьте код для отображения поля сообщения, например:
::MessageBox(NULL, _T("I'm invoked"), _T("Your Container Message"), MB_OK);
Добавьте еще один метод, называемый
HelloHTML
только на этот раз, добавьте его в интерфейс, который заканчивается в пользовательском интерфейсе. Найдите метод stubbed-outHelloHTML
в файле .cpp и добавьте код для отображения поля сообщения, например:::MessageBox(NULL, _T("Here's your message"), _T("HelloHTML"), MB_OK);
Добавьте третий метод в
GoToURL
интерфейс, который не заканчивается в пользовательском интерфейсе. Реализуйте этот метод, вызвав IWebBrowser2::Navigate, как показано ниже.m_spBrowser->Navigate(CComBSTR(L"www.microsoft.com"), NULL, NULL, NULL, NULL);
Методы можно использовать
IWebBrowser2
, так как ATL предоставляет указатель на этот интерфейс в H-файле.
Затем измените HTML-ресурс, чтобы вызвать созданные методы. Вы добавите три кнопки для вызова этих методов.
Изменение html-ресурса
В Обозреватель решений дважды щелкните файл .htm, чтобы отобразить HTML-ресурс.
Изучите HTML, особенно вызовы внешних методов отправки Windows. HTML вызывает метод проекта
OnClick
, а параметры указывают текст элемента управления (theBody
) и цвет для назначения ("red
"). Текст после вызова метода — это метка, которая отображается на кнопке.Добавьте другой
OnClick
метод, только измените цвет. Например:<br> <br> <BUTTON onclick='window.external.OnClick(theBody, "white");'>Refresh</BUTTON>
Этот метод создаст кнопку с меткой "Обновить", которую пользователь может щелкнуть, чтобы вернуть элемент управления в исходный белый фон.
Добавьте вызов созданного
HelloHTML
метода. Например:<br> <br> <BUTTON onclick='window.external.HelloHTML();'>HelloHTML</BUTTON>
Этот метод создаст кнопку с меткой HelloHTML, которую пользователь может щелкнуть, чтобы отобразить
HelloHTML
окно сообщения.
Теперь вы можете создать и проверить измененный элемент управления DHTML.