Diskussion zum Artikel "Grafische Interfaces II: Einrichtung des Eventhandlers für die Bibliothek (Kapitel 3)"
Das ist wirklich gute Arbeit.
Im Konstruktor von CContextMenu habe ich die Zeile
CContextMenu::m_item_y_size=24;damit 'm_item_y_size' einen Standardwert hat und die TestLibrary schön kompiliert.
Otto Pauser:
Vielen Dank für die Nachricht. Alle Korrekturen werden im nächsten Teil dieser Serie vorgenommen.
Das ist wirklich gute Arbeit.
Im Konstruktor von CContextMenu habe ich die Zeile
damit 'm_item_y_size' einen Standardwert hat und die TestLibrary schön kompiliert.
Function void CContextMenu::ReceiveMessageFromMenuItem(const int id_item,const int index_item,const string message_item)
sendet die Nachricht über den Zustand des Kontrollkästchens nicht, wenn das Element diesen Typ hat. Aber im Allgemeinen ist die Bibliothek sehr gut)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Neuer Artikel Grafische Interfaces II: Einrichtung des Eventhandlers für die Bibliothek (Kapitel 3) :
Der vorherige Artikel beinhaltet die Implementation der Klassen für das Erzeugen der Bestandteile des Hauptmenüs. Nun ist es an der Zeit, dass wir uns die Eventhandler in den Basisklassen und in den Klassen für die Controls näher betrachten. Wir werden unsere Aufmerksamkeit auch auf das Verwalten des Status des Charts, in Abhängigkeit der Position des Mauszeigers, richten.
Privates Array der Elemente
Lassen Sie uns ein kleines Experiment durchführen. Klicken Sie mit der linken Maustaste auf ein Kontextmenüelement in dem Bereich, wo sich der Mauszeiger außerhalb des Bereiches des Formulars befindet. Wir stellen hier fest, dass das Scrollen des Charts nicht deaktiviert wurde und es genutzt werden kann, während sich der Mauszeiger über dem Control befindet. Dieses ist ein funktionaler Fehler und er sollte nicht existieren. Wir werden es nun so einrichten, dass, egal über welchem Controls sich der Mauszeiger befindet, dass scrollen des Charts und das Verschieben von Trading levels in diesem Moment deaktiviert ist.
Zunächst einmal fügen wir die Nachverfolgung des Fokus eines Elementes dem Kontextmenü-Handler hinzu, so wie es in dem nachfolgenden Programmcode gezeigt wird. Falls das Kontext-Menü versteckt ist, dann brauchen wir nichts weiter zu unternehmen. Folgen Sie immer diesem Ansatz um Zeit zu sparen.
Ein vorläufiger Test der Eventhandler
Sobald alle Änderungen durchgeführt worden sind, kompilieren Sie die Datei und laden sie den EA auf einen Chart. Wenn jetzt auf einen unabhängigen Menüpunkt geklickt wird, dann erscheint sein Kontextmenü, falls es zuvor versteckt war und es wird versteckt, falls es zuvor geöffnet war. Zudem wird, wenn ein Kontextmenü geöffnet ist, die Hintergrundfarbe des Menüpunktes festgelegt, damit sie sich nicht mehr verändert, wenn sich der Mauszeiger außerhalb seines Bereiches bewegt.
Autor: Anatoli Kazharski