Freigeben über


StockTicker-Beispiel: Zeigt Webinformationen in einem ATL-Steuerelement

StockTicker-Beispiel Börsendaten von im Web gedownloadet und in ein ATL-Steuerelement, das die Daten von rechts nach links laufen angezeigt. Das Steuerelement aktualisiert die Daten in festgelegten Intervallen, die der Benutzer festlegt.

StockTicker besteht aus vier Teilen:

  • Gemeinsam genutzte ATL-Komponente (stockquotes).

  • ATL-Steuerelement (stocktickeratl).

  • ISAPI-Erweiterungs-DLL (stocksourcemfc).

  • MFC-Container-Anwendung (containermfc). Sie können diese EXE-Datei umbenennen.

SicherheitshinweisSicherheitshinweis

Dieser Beispielcode soll ein Konzept veranschaulichen, und es wird nur den Code, der für dieses Konzept relevant sind. Möglicherweise erfüllt dieser nicht die Sicherheitsanforderungen für eine bestimmte Umgebung, und er sollte nicht genau wie dargestellt verwendet werden. Wir empfehlen, Sicherheits- und Fehlerbehandlungscode hinzuzufügen, um Ihre Projekte sicherer und stabiler zu machen. Microsoft stellt diesen Beispielcode "Wie besehen"keine Garantien.

So erhalten Sie Beispiele und Anweisungen für deren Installation:

Um Beispiele von Visual Studio zuzugreifen

  • im Menü Hilfe Menü klicken Beispiele.

    Standardmäßig sind die Beispiele in installiert. Laufwerk: \Programme\Microsoft visual Studio 10.0\Samples\.

  • Die neueste Version dieses Beispiels und eine Liste der anderen Beispiele finden Sie unter Visual Studio Samples auf der MSDN-Website.

Erstellen und Ausführen des Beispiels

So erstellen Sie und führen im StockTicker-Beispiel

  1. Öffnen Sie die Projektmappe StockTicker.sln.

  2. erstellen Sie Menü, klicken Sie auf erstellen.

  3. Verwenden Sie regsvr32, um zwei DLLs zu registrieren: stockquotes.dll und stocktickeratl.dll. Möglicherweise müssen auch ATL.dll zu registrieren.

    Die ISAPI-Erweiterungs-DLL imitiert eine vordefinierte Datenquelle. Sie muss auf einem Computer installiert werden, auf denen Webserver-Software (z. B. Microsoft Internet Information Services [IIS]) installiert wurde. Sie müssen StockTicker erkennen, wo diese DLL befindet ist. Anweisungen zur Verwendung der ISAPI-Erweiterungs-DLL finden Sie unter.

  4. containermfc.exe ausführen. Klicken Sie mit der rechten Maustaste auf den Clientbereich des der Anwendung ein Kontextmenü angezeigt. Verwenden Sie dieses Menü, um das Verhalten und Eigenschaften von StockTicker, ändern, wie im folgenden Abschnitt beschrieben.

Hinzufügen von vordefinierten Source-Websites

Folgen Sie diesen Schritten zum eigene Aktien Quellwebsite hinzufügen.

  1. stockquotes\stockquotes_.h bearbeiten. Untersuchen Sie die CSQSISAPIDll-Klasse. Die Klasse können als Beispiel zum Erstellen von neuen Aktienkurs-Klassen.

  2. Erstellen Sie eine neue Klasse von CStockQuoteSource abgeleitet.

  3. Legen Sie im neuen Klassenkonstruktor m_strURL auf den vollständigen URL der Website aus, wo die Daten abzurufen. Müssen Sie den Befehl zum Abrufen der vordefinierten Daten einschließen.

  4. Das Format der von der Website zurückgegebenen HTML-möglicherweise erfordert, dass Sie SetStockInfo und/oder ParseStockInfo überschrieben.

  5. Erstellen Sie die Komponente neu, und registrieren.

Wenn die gewählte Site Daten zurückgibt in CONAME: <NA>, wobei CONAME das Aktiensymbol ist entweder die Website konnte nicht zugegriffen werden oder die erstellte Quellklasse konnte die Börsendaten über dem HTML nicht finden.

Hinweis

Das Format, Dezimal oder Nachkommastellen, die vordefinierte Daten kann zwischen der Aktien unterscheiden, die Sie überwachen möchten.StockTicker unternimmt keinen Versuch so ändern Sie die Daten konsistent machen.

Verhalten und Eigenschaften von StockTicker

  • Aktien
    Zeigt ein Dialogfeld über die können Sie hinzufügen oder Entfernen der Aktiensymbole überwachen. Das Dialogfeld wird mit der aktuellen Liste der Aktiensymbole initialisiert.

  • Jetzt aktualisieren
    Aktualisiert die Börsendaten aus dem Internet.

  • Eigenschaften
    Das Dialogfeld Eigenschaften hat drei Eigenschaftenseiten: Farbe, Schriftart und Benutzerdefiniert. Wenn die vordefinierten Eigenschaftenseiten Farbe und Schriftart nicht im Dialogfeld Eigenschaften angezeigt werden, stellen Sie sicher msstkprp.dll registriert haben.

    Sie können die folgenden Eigenschaften ändern.

    • Ticker Speed verschieben Sie den Schieberegler, um erhöhen oder verringern Sie die Rate, mit der die Börsendaten von rechts nach links bewegt.

    • Intervall aktualisieren Zeit in Minuten zwischen Aktualisierungen.

    • ISAPI Extension DLL URL geben Sie den vollständigen URL für die ISAPI-Erweiterungs-DLL. Hängen Sie den folgenden Text an das Ende des URLs: ?QueryForStock?Symbol=.

      Wenn Sie den URL für die ISAPI-Erweiterungs-DLL angeben, müssen Sie die Komponente enthalten, die dafür verantwortlich, die HTML-, die die vordefinierte Informationen enthält, zurückzugeben.

  • Informationen zu Stock Ticker
    Öffnet das Dialogfeld Info.

  • Im Vordergrund bleiben
    StockTicker bleibt über allen anderen Anwendungen;Andernfalls kann es von anderen Anwendungen ausgeblendet werden.

Von "StockTicker" verwendete Features

  • ATL COM-Objekt

  • ATL-Dialogfeld-Objekt

  • ATL-Steuerelement

  • MFC Internet (WinInet)-Klassen

  • MFC-ISAPI-Erweiterungs-DLL

  • Verbindungspunkte

  • Dauerhaftigkeit

  • Benutzerdefinierte Enumeratoren

  • C++-Standardbibliothek

StockTicker-Komponenten

Dieser Abschnitt enthält weitere Details über die StockTicker-Komponenten.

  • Stock Quotes Component
    Die freigegebene Komponente, die ATL-Objekt, wird mit dem ATL-Projekt Anwendungs-Assistenten erstellt. Es verwendet MFC-WinInet-Unterstützung und andere Dienstprogrammklassen. Stock Quotes verfolgt die Aktien, die überwacht werden sollen und aktualisiert die vordefinierte Informationen aus dem Internet. Eine Anwendung kann diese Komponente für synchrone oder asynchrone Aktualisierungen verwenden. Wenn die StartUpdating-Methode aufgerufen wird, ein untergeordneter Thread wird erstellt und die Funktion wird sofort zurückgegeben. Der untergeordnete Thread erstellt einen Zeitgeber und wartet, bis das Aktualisierungsintervall abgelaufen ist. Dann fordert eine Aktualisierung von der Stock Quotes-Komponente an. Nachfolgende Aufrufe von Update senden Sie eine Thread-Nachricht an den untergeordneten Thread, angibt, die ein Update auftreten soll, und Update kehrt sofort zurück. Im synchronen Modus Update blockiert, bis der Download abgeschlossen ist.

    Die Stock Quotes-Komponente dient zum Verfolgen der Börsendatenquellen-Objekte, die die Websites darstellen, aus denen die Börsendaten gedownloadet werden. Wenn die Börsendaten von StockTicker aktualisiert wird, wird die Stock Quotes-Komponente wird durch die Liste der Börsendatenquellen und versucht, die Informationen zu downloaden. Wenn der Versuch fehlschlägt, versucht die Komponente, vordefinierte Daten aus der nächsten Quelle zu downloaden. Wenn aller der Börsendatenquellen die Informationen zu downloaden fehlschlagen, wird <NA> im Tickerfenster hinter dem Aktiensymbol angezeigt.

    Vordefinierte Daten stammen aus der Website im HTML-Formular. Die Daten müssen analysiert werden, nach den aktuellen Preis und den Preis seit der letzten Aktualisierung ändern. Die Stock Quotes-Komponente behandelt diese Analyse nach zwei Schlüsselwörtern suchen: z. B. Current: oder Change:. Die Komponente liest die Daten folgt die Schlüsselwörter, wenn die Daten entweder eine fractional oder dezimale Zahl (Bruch oder Dezimal).

    Da Aktie Websites die Möglichkeit, Daten zu übermitteln ändern kann, müssen Sie eventuell den Algorithmus ändern, den Aktienkurse verwendet die stock Informationen zu erhalten.

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

  • ISAPI extension DLL
    Die vordefinierte Standard-Datenquelle ist die lokale ISAPI-Erweiterungs-DLL. ISAPI-Erweiterungs-DLL zurück keine echten Börsendaten. Wenn Sie Daten für eine Aktie anfordern, überprüft die DLL stattdessen, ob das Aktiensymbol in der Liste der bekannten Aktien ist. Wenn das Aktiensymbol auf der Liste befindet, wird die DLL die Daten abgerufen und zufällig passt den aktuellen Aktienkurs, nach oben oder unten. Wenn das Aktiensymbol neu ist, wird es der Liste hinzugefügt und eine anfängliche Aktienkurs festgelegt.

  • Stock Ticker Control
    Dieses Steuerelement wurde mit den Assistenten für ATL-Objekte erstellt. MFC verwendet, um einiges leichter machen.

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

    Das Stock Ticker-Steuerelement verwendet die Stock Quotes-Komponente, um die Börsendaten und Aktualisierungen zu behandeln. Wenn Zeit zum selbst in einen Stream speichern, fragt das Steuerelement auch die Stock Quotes-Komponente selbst speichern.

    Beim Start das Stock Ticker-Steuerelement die Stock Quotes-Komponente erstellt und werden Sie gefragt, Aktualisierung der Börsendaten zu starten. Das Steuerelement startet dann einen Zeitgeber, den für die Draw-Render-Schleife verwendet. Wenn Börsendaten aktualisiert wurde, benachrichtigt die Stock Quotes-Komponente das Steuerelement (über einen Verbindungspunkt). Das Steuerelement dann ruft die vordefinierte Informationen von der Stock Quotes-Komponente ab und erstellt daraus eine Zeichenfolge. Diese Zeichenfolge in das Steuerelement gezeichnet wird und führt einen Bildlauf von rechts nach links.

  • Stock Ticker Container
    Der Stock Ticker-Container ist ein Active der MFC-Container, mit dem MFC-Anwendungs-Assistenten erstellt. Größe und Position beim Beenden speichert, und beim Neustart den vorherigen Zustand wiederhergestellt.

    Der Container verarbeitet auch die 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, CComPtr, CDialogImpl, std::list, IPersistStreamInit, IFontDisp, IViewObjectEx, CComControl, IOleControl, IPropertyPageImpl, CBitmap, CDC, IPersistStreamInit_Load, IPersistStreamInit_Save, IConnectionPointImpl

Hinweis

Einige Beispiele, z. B. eine, wurden nicht geändert, um Änderungen in der Visual C++-Assistenten, Bibliotheken und Compiler, demonstrieren aber dennoch wie Sie die gewünschte Aufgabe durchführen.

Siehe auch

Weitere Ressourcen

MFC-Beispiele