Modyfikowanie kontrolki DHTML ATL
Kreator kontrolek ATL udostępnia kod początkowy, dzięki czemu można skompilować i uruchomić kontrolkę oraz zobaczyć, jak metody są zapisywane w plikach projektu oraz jak wywołania DHTML do kodu C++ kontrolki przy użyciu metod wysyłania. Do interfejsu można dodać dowolną metodę wysyłania. Następnie można wywołać metody w zasobie HTML.
Aby zmodyfikować kontrolkę DHTML ATL
W widoku klasy rozwiń projekt sterujący.
Zwróć uwagę, że interfejs kończący się na "interfejsie użytkownika" ma jedną metodę .
OnClick
Interfejs, który nie kończy się na "interfejsie użytkownika", nie ma żadnych metod.Dodaj metodę o nazwie
MethodInvoked
do interfejsu, która nie kończy się na "interfejsie użytkownika".Ta metoda zostanie dodana do interfejsu, który jest używany w kontenerze sterowania do interakcji kontenera, a nie do interfejsu używanego przez DHTML do interakcji z kontrolką. Tylko kontener może wywołać tę metodę.
Znajdź metodę stubbed-out w pliku .cpp i dodaj kod, aby wyświetlić pole komunikatu, na przykład:
::MessageBox(NULL, _T("I'm invoked"), _T("Your Container Message"), MB_OK);
Dodaj kolejną metodę o nazwie
HelloHTML
, tylko tym razem dodaj ją do interfejsu kończącego się na "interfejsie użytkownika". Znajdź metodę stubbed-outHelloHTML
w pliku .cpp i dodaj kod, aby wyświetlić pole komunikatu, na przykład:::MessageBox(NULL, _T("Here's your message"), _T("HelloHTML"), MB_OK);
Dodaj trzecią metodę ,
GoToURL
do interfejsu, który nie kończy się na "interfejsie użytkownika". Zaimplementuj tę metodę, wywołując metodę IWebBrowser2::Navigate w następujący sposób:m_spBrowser->Navigate(CComBSTR(L"www.microsoft.com"), NULL, NULL, NULL, NULL);
Można użyć
IWebBrowser2
metod, ponieważ ATL udostępnia wskaźnik do tego interfejsu w pliku h.
Następnie zmodyfikuj zasób HTML, aby wywołać utworzone metody. Dodasz trzy przyciski do wywoływania tych metod.
Aby zmodyfikować zasób HTML
W Eksplorator rozwiązań kliknij dwukrotnie plik .htm, aby wyświetlić zasób HTML.
Sprawdź kod HTML, szczególnie wywołania metod wysyłania zewnętrznego systemu Windows. Kod HTML wywołuje metodę projektu
OnClick
, a parametry wskazują treść kontrolki (theBody
) i kolor do przypisania ("red
"). Tekst po wywołaniu metody to etykieta wyświetlana na przycisku.Dodaj inną
OnClick
metodę, zmieniając tylko kolor. Na przykład:<br> <br> <BUTTON onclick='window.external.OnClick(theBody, "white");'>Refresh</BUTTON>
Ta metoda utworzy przycisk z etykietą Odśwież, który użytkownik może kliknąć, aby przywrócić kontrolkę do oryginalnego, białego tła.
Dodaj wywołanie do utworzonej
HelloHTML
metody. Na przykład:<br> <br> <BUTTON onclick='window.external.HelloHTML();'>HelloHTML</BUTTON>
Ta metoda utworzy przycisk z etykietą HelloHTML, który użytkownik może kliknąć, aby wyświetlić okno komunikatu
HelloHTML
.
Teraz możesz skompilować i przetestować zmodyfikowaną kontrolkę DHTML.