StockTicker-Beispiel: Zeigt Webinformationen in einem ATL-Steuerelement an

Aktualisiert: November 2007

Im StockTicker-Beispiel werden Börsendaten aus dem Internet heruntergeladen und in einem ATL-Steuerelement angezeigt, in dem für die Daten ein Bildlauf von rechts nach links durchgeführt werden kann. Das Steuerelement aktualisiert die Daten in bestimmten zeitlichen Abständen, die vom Benutzer festgelegt werden können.

StockTicker besteht aus vier Teilen:

  • Gemeinsam genutzte ATL-Komponente (stockquotes).

  • ATL-Steuerelement (stocktickeratl).

  • ISAPI-Erweiterungs-DLL (stocksourcemfc).

  • MFC-Containeranwendung (containermfc). Diese EXE-Datei kann umbenannt werden.

Sicherheitshinweis:

Dieser Beispielcode dient dazu, ein Konzept zu veranschaulichen. Er sollte nicht für Anwendungen oder Websites verwendet werden, da dieser Code unter Umständen nicht die sicherste Codierungstechnik darstellt. Microsoft übernimmt keine Haftung für beiläufig entstandene Schäden oder Folgeschäden, falls der Beispielcode nicht bestimmungsgemäß verwendet wird.

So rufen Sie Beispiele und Anweisungen für ihre Installation ab

  • Klicken Sie in Visual Studio im Menü Hilfe auf Beispiele.

    Weitere Informationen finden Sie unter Suchen von Beispieldateien.

  • Die neueste Version und vollständige Liste mit Beispielen ist online unter Visual Studio 2008 Samples verfügbar.

  • Sie können auch Beispiele auf der Festplatte des Computers suchen. Standardmäßig werden Beispiele und eine Infodatei in einen Ordner unter \Programme\Visual Studio 9.0\Samples\ kopiert. Für Express Editions von Visual Studio sind alle Beispiele online verfügbar.

Erstellen und Ausführen des Beispiels

So erstellen Sie das StockTicker-Beispiel und führen es aus

  1. Öffnen Sie die Projektmappe StockTicker.sln.

  2. Klicken Sie im Menü Erstellen auf Erstellen.

  3. Mithilfe von regsvr32 können zwei DLLs registriert werden: stockquotes.dll und stocktickeratl.dll. Möglicherweise müssen Sie ATL.dll erneut registrieren.

    Die ISAPI-Erweiterungs-DLL imitiert eine Datenquelle für Börsendaten. Sie muss auf einem Computer installiert werden, auf dem auch eine Webserversoftware, beispielsweise Microsoft Internetinformationsdienste (IIS), installiert ist. Sie müssen StockTicker mitteilen, wo sich diese DLL befindet. Anweisungen zur Verwendung der ISAPI-Erweiterungs-DLL finden Sie weiter unten.

  4. Führen Sie die Datei containermfc.exe aus. Klicken Sie mit der rechten Maustaste in den Clientbereich der Anwendung, um ein Kontextmenü anzuzeigen. In diesem Menü können Sie das Verhalten und die Eigenschaften von StockTicker ändern, wie im folgenden Abschnitt beschrieben.

Hinzufügen von Websites mit Börsendatenquellen

Führen Sie die folgenden Schritte aus, um eine eigene Website mit Börsendatenquellen hinzuzufügen.

  1. Bearbeiten Sie die Datei stockquotes\stockquotes_.h. Untersuchen Sie die Klasse CSQSISAPIDll. Diese Klasse kann als Beispiel dafür verwendet werden, wie neue Aktienkursklassen erstellt werden können.

  2. Erstellen Sie eine neue, von CStockQuoteSource abgeleitete Klasse.

  3. Legen Sie im neuen Klassenkonstruktor m_strURL auf den vollständigen URL der Website fest, von der die Daten abgerufen werden sollen. Stellen Sie sicher, dass der Befehl zum Abrufen der Börsendaten mit eingeschlossen wird.

  4. Möglicherweise erfordert das Format der aus der Website zurückgegebenen HTML-Daten, dass SetStockInfo und/oder ParseStockInfo überschrieben werden.

  5. Erstellen Sie die Komponente erneut, und registrieren Sie sie.

Wenn die gewählte Site Daten in der Form CONAME: <NA> zurückgibt, wobei CONAME das Börsensymbol der entsprechenden Firma ist, konnte entweder nicht auf die Site zugegriffen werden, oder die erstellte Quellklasse konnte die Börsendaten über das HTML-Format nicht finden.

Hinweis:

Das Format der Börsendaten (dezimal oder als Bruch) variiert möglicherweise in Abhängigkeit von den zur Überwachung ausgewählten Aktien. StockTicker unternimmt hierbei keinen Versuch, die Daten dahingehend zu ändern, dass das Format einheitlich ist.

Verhalten und Eigenschaften von "StockTicker"

  • Stocks
    Zeigt ein Dialogfeld an, in dem die zu Aktiensymbole zur Überwachung hinzugefügt und entfernt werden können. Dieses Dialogfeld wird mit der aktuellen Liste der Aktiensymbole initialisiert.

  • Update Now
    Aktualisiert die Börsendaten anhand der Daten aus dem Web.

  • Eigenschaften
    Im Dialogfeld Propertiesgibt es drei Eigenschaftenseiten: Color, Font und Custom. Wenn die Eigenschaftenseiten Color und Font nicht im Dialogfeld Properties angezeigt werden, überprüfen Sie, ob Sie msstkprp.dll registriert haben.

    Die folgenden Eigenschaften können jederzeit geändert werden.

    • Ticker Speed   Bewegen Sie den Schieberegler, um die Geschwindigkeit, mit der die Börsendaten beim Durchführen eines Bildlaufs von rechts nach links bewegt werden, zu erhöhen bzw. zu verringern.

    • Update Interval   Zeit (in Minuten) zwischen den Aktualisierungsvorgängen.

    • ISAPI Extension DLL URL   Geben Sie den vollständigen URL für die ISAPI-Erweiterungs-DLL ein. Fügen Sie den nachstehenden Text am Ende des URL an: ?QueryForStock?Symbol=.

      Wenn Sie den URL für die ISAPI-Erweiterungs-DLL festlegen, müssen Sie auch die Komponente mit einschließen, die für die Rückgabe der HTML-Datei mit den Börsendaten zuständig ist.

  • About Stock Ticker
    Öffnet das Dialogfeld About mit Informationen zu Stock Ticker.

  • Stay On Top
    StockTicker wird immer über den anderen Anwendungen angeordnet. Anderenfalls kann es durch andere Anwendungen verdeckt werden.

Von "StockTicker" verwendete Features

  • ATL COM-Objekt

  • ATL-Dialogfeld-Objekt

  • ATL-Steuerelement

  • MFC Internet-Klassen (WinInet-Klassen)

  • MFC-ISAPI-Erweiterungs-DLL

  • Verbindungspunkte

  • Dauerhaftigkeit

  • Benutzerdefinierte Enumeratoren

  • C++-Standardbibliothek

StockTicker-Komponenten

Der folgende Abschnitt enthält ausführliche Informationen über die StockTicker-Komponenten.

  • Stock Quotes-Komponente
    Die gemeinsam genutzte Komponente (das ATL-Objekt) wird mithilfe des Anwendungs-Assistenten für ATL-Projekte erstellt. Sie verwendet die MFC-WinInet-Unterstützung und andere Dienstprogrammklassen. Stock Quotes überwacht die zu beobachtenden Aktien und aktualisiert die Börsendaten aus dem Internet. Eine Anwendung kann diese Komponente sowohl für synchrone als auch für asynchrone Aktualisierungen verwenden. Wenn die Methode StartUpdating aufgerufen wird, wird ein untergeordneter Thread erstell, und die Funktion wird sofort zurückgegeben. Der untergeordnete Thread erstellt einen Zeitgeber und wartet, bis das Aktualisierungsintervall abgelaufen ist. Danach fordert er eine Aktualisierung der Stock Quotes-Komponente an. Nachfolgende Aufrufe an Update übermitteln eine Meldung an den untergeordneten Thread, die angibt, dass eine Aktualisierung erfolgen sollte. Daraufhin wird Update sofort zurückgegeben. Im synchronen Modus wird Update blockiert, bis der Download abgeschlossen ist.

    Die Stock Quotes-Komponente überwacht die Börsendatenquellen-Objekte, die die Websites darstellen, aus denen die Börsendaten heruntergeladen werden. Wenn die Börsendaten von StockTicker aktualisiert werden, durchläuft die Stock Quotes-Komponente die Liste der Börsendatenquellen und versucht, die Daten herunterzuladen. Wenn dieser Versuch fehlschlägt, versucht die Komponente, die Börsendaten aus der nächsten Quelle herunterzuladen. Falls aus sämtlichen Börsendatenquellen keine Daten heruntergeladen werden können, wird im Tickerfenster hinter dem Aktiensymbol <NA> angezeigt.

    Börsendaten werden aus der Website im HTML-Format abgerufen. Die Daten müssen analysiert werden, um den aktuellen Preis und die Preisänderungen seit der letzten Aktualisierung zu ermitteln. Zum Analysieren durchsucht die Stock Quotes-Komponente die Daten nach zwei Schlüsselwörtern, beispielsweise Current: oder Change:. Die Daten, die diesen Schlüsselwörtern folgen, werden von der Komponente ausgewertet, sofern es sich dabei um eine Dezimalzahl oder einen Bruch handelt.

    Da Börsenwebsites unter Umständen die Art der Datenübertragung ändern, müssen Sie möglicherweise den Algorithmus ändern, den Stock Quotes zum Abrufen der Daten verwendet.

    Anweisungen zum Hinzufügen eigener Börsendatenquellen finden Sie weiter unten.

  • ISAPI-Erweiterungs-DLL
    Die standardmäßige Börsendatenquelle ist die lokale ISAPI-Erweiterungs-DLL. Die ISAPI-Erweiterungs-DLL gibt jedoch keine echten Börsendaten zurück. Wenn Sie Informationen zu einer bestimmten Aktie anfordern, überprüft die DLL, ob das entsprechende Symbol in der Liste der bekannten Aktien vorhanden ist. Wenn das Aktiensymbol in der Liste gefunden wird, ruft die DLL die Daten ab und passt den aktuellen Aktienpreis nach oben oder unten an. Wenn es sich um ein neues Aktiensymbol handelt, wird es in die Liste aufgenommen, und ein Anfangspreis für die Aktie wird eingerichtet.

  • Stock Ticker-Steuerelement
    Dieses Steuerelement wurde mit dem ATL-Objekt-Assistenten erstellt. Es verwendet MFC, um einige Aktionen zu vereinfachen.

    Sie können dieses Steuerelement auch außerhalb von StockTicker verwenden.

    Das Stock Ticker-Steuerelement verwendet die Stock Quotes-Komponente, um die Börsendaten und Aktualisierungen zu verwalten. Wenn das Steuerelement zu gegebener Zeit seine Daten in einem Stream speichert, fordert es gleichzeitig auch die Stock Quote-Komponente zum Speichern auf.

    Beim Starten erstellt das Stock Ticker-Steuerelement die Stock Quotes-Komponente und fordert sie auf, mit der Aktualisierung der Börsendaten zu beginnen. Das Steuerelement startet daraufhin einen Zeitgeber, der für die Zeichnungs-/Wiedergabeschleife verwendet wird. Sobald die Börsendaten aktualisiert sind, benachrichtigt die Stock Quotes-Komponente das Steuerelement (über einen Verbindungspunkt). Das Steuerelement erhält daraufhin von der Stock Quotes-Komponente sämtliche Börsendaten und erstellt daraus eine Zeichenfolge. Diese Zeichenfolge wird im Steuerelement gezeichnet und kann von rechts nach links bewegt werden.

  • Stock Ticker-Container
    Der Stock Ticker-Container ist ein MFC-Container für aktive Steuerelemente, der mithilfe des MFC-Anwendungs-Assistenten erstellt wird. Wenn er beendet wird, speichert er seine aktuelle Größe und Position und stellt diesen Zustand beim erneuten Starten wieder her.

    Der Container verwaltet außerdem StockTicker-Menüs.

Schlüsselwörter

Dieses Beispiel demonstriert die Verwendung der folgenden Schlüsselwörter:

IEnumXXX, CWinThread, std::vector, IConnectionPointContainer, CInternetSession, CInternetException, AfxParseURL, CHttpConnection, CHttpFile, COleClientItem, COleDocument, COleDispatchDriver, CreateILockBytesOnHGlobal, StgCreateDocfileOnILockBytes, OleSave, StgIsStorageILockBytes, GetHGlobalFromILockBytes, COleFont, std::basic_istream, std::basic_ostream, CHttpServer, CcomP tr, CDialogImpl, std::list, IPersistStreamInit, IFontDisp, IViewObjectEx, CComControl, IOleControl, IPropertyPageImpl, CBitmap, CDC, IPersistStreamInit_Load, IPersistStreamInit_Save, IConnectionPointImpl

Hinweis:

In diesem und einigen anderen Beispielen wurden die Änderungen an den Visual C++-Assistenten, -Bibliotheken und -Compilern noch nicht nachvollzogen. Sie demonstrieren aber dennoch, wie Sie die gewünschte Aufgabe durchführen können.

Siehe auch

Weitere Ressourcen

MFC-Beispiele