Freigeben über


Ändern des ATL-DHTML-Steuerelements

Hinweis

Die aktive Vorlagenbibliothek (ACTIVE Template Library, ATL) wird weiterhin unterstützt. Wir fügen jedoch keine Features mehr hinzu oder aktualisieren die Dokumentation.

Der ATL-Steuerelement-Assistent stellt Startcode bereit, sodass Sie das Steuerelement erstellen und ausführen können, und so können Sie sehen, wie die Methoden in den Projektdateien geschrieben werden und wie der DHTML-Code mithilfe der Verteilermethoden in den C++-Code des Steuerelements aufruft. Sie können der Schnittstelle eine beliebige Verteilermethode hinzufügen. Anschließend können Sie die Methoden in der HTML-Ressource aufrufen.

So ändern Sie das ATL-DHTML-Steuerelement

  1. In der Klassenansicht erweitern Sie das Steuerungsprojekt.

    Beachten Sie, dass die Schnittstelle, die auf "UI" endet, über eine Methode verfügt. OnClick Die Schnittstelle, die nicht auf "UI" endet, besitzt keine Methoden.

  2. Fügen Sie eine Methode namens MethodInvoked zur Schnittstelle hinzu, die nicht auf "UI" endet.

    Diese Methode wird der Schnittstelle hinzugefügt, die im Steuerelementcontainer für die Containerinteraktion verwendet wird, nicht der Schnittstelle, die von DHTML für die Interaktion mit dem Steuerelement verwendet wird. Nur der Container kann diese Methode aufrufen.

  3. Suchen Sie die stubbed-out-Methode in der .cpp-Datei, und fügen Sie Code hinzu, um ein Meldungsfeld anzuzeigen, z. B.:

    ::MessageBox(NULL, _T("I'm invoked"), _T("Your Container Message"), MB_OK);
    
  4. Fügen Sie eine weitere Methode namens HelloHTML hinzu, aber fügen Sie sie dieses Mal der Schnittstelle hinzu, die auf "UI" endet. Suchen Sie die Methode HelloHTML, die in der .cpp-Datei nur als Platzhalter existiert, und fügen Sie Code hinzu, um ein Meldungsfeld anzuzeigen, z. B.:

    ::MessageBox(NULL, _T("Here's your message"), _T("HelloHTML"), MB_OK);
    
  5. Fügen Sie der Schnittstelle, die nicht auf "UI" endet, GoToURLeine dritte Methode hinzu. Implementieren Sie diese Methode, indem Sie IWebBrowser2::Navigate wie folgt aufrufen:

    m_spBrowser->Navigate(CComBSTR(L"www.microsoft.com"), NULL, NULL, NULL, NULL);
    

    Sie können die IWebBrowser2 Methoden verwenden, da ATL einen Zeiger auf diese Schnittstelle für Sie in der H-Datei bereitstellt.

Ändern Sie als Nächstes die HTML-Ressource, um die von Ihnen erstellten Methoden aufzurufen. Sie fügen drei Schaltflächen zum Aufrufen dieser Methoden hinzu.

So ändern Sie die HTML-Ressource

  1. In Solution Explorer doppelklicken Sie auf die .htm-Datei, um die HTML-Ressource anzuzeigen.

    Untersuchen Sie den HTML-Code, insbesondere die Aufrufe der externen Windows-Verteilermethoden. Der HTML-Code ruft die Methode des Projekts auf, und die Parameter geben den Textkörper des Steuerelements OnClick (theBody) und die Farbe an, die zugewiesen werden soll ("red"). Der Text nach dem Methodenaufruf ist die Bezeichnung, die auf der Schaltfläche angezeigt wird.

  2. Fügen Sie eine weitere OnClick Methode hinzu, ändern Sie nur die Farbe. Zum Beispiel:

    <br>
    <br>
    <BUTTON onclick='window.external.OnClick(theBody, "white");'>Refresh</BUTTON>
    

    Mit dieser Methode wird eine Schaltfläche mit der Bezeichnung "Aktualisieren" erstellt, auf die der Benutzer klicken kann, um das Steuerelement an den ursprünglichen weißen Hintergrund zurückzugeben.

  3. Fügen Sie den Aufruf der Methode HelloHTML, die Sie erstellt haben, hinzu. Zum Beispiel:

    <br>
    <br>
    <BUTTON onclick='window.external.HelloHTML();'>HelloHTML</BUTTON>
    

    Mit dieser Methode wird eine Schaltfläche mit der Bezeichnung HelloHTML erstellt, auf die der Benutzer klicken kann, um das HelloHTML Meldungsfeld anzuzeigen.

Sie können jetzt das geänderte DHTML-Steuerelement erstellen und testen.

Siehe auch

Unterstützung für DHTML-Steuerung