Hallo Anatoli,
ich bin sehr an der grafischen Oberfläche interessiert. Aber es funktioniert nicht in meiner Applcation. Das Panel-Fenster wird nicht verschoben. Auch im Beispielprogramm "InfoPanel.mq5" (mit der Einstellung der Eigenschaft Movable auf true) passiert nichts. Das Panel wird zwar angezeigt, ist aber nicht verschiebbar. Vielleicht haben Sie eine Idee, was falsch sein könnte? (Ich benutze Windows10 und den Metatrader ver 5.0 build 1340)
Mit freundlichen Grüßen Roland
Hallo zusammen,
ich habe die Quellen aus dem letzten Teil(4). Jetzt funktioniert alles gut.
Viele Grüße Roland
Wie kann man Mausbewegungen mit der Standardbibliothek verarbeiten? Ich habe mit der Datei in Experts\Examples\Controls getestet. Modifizierung der CListView-Klasse der Standardbibliothek.
Das Ereignis ON_MOUSE_FOCUS_SET wird nicht verarbeitet, wenn ich nur die Funktion .ChartEvent(...) verwende.
Wenn ich die Funktion .OnEvent(...) verwende, wird das Ereignis ON_MOUSE_FOCUS_SET verarbeitet, aber ich kann das Fenster nicht verschieben.
Wenn ich beide Funktionen verwende, indem ich zuerst .ChartEvent() und dann .OnEvent() aufrufe, wird das Ereignis ON_MOUSE_FOCUS_SET verarbeitet, aber wenn ich auf die Inkrement- und Dekrement-Schaltfläche klicke, ändert es sich um mehr als einen Schritt.
virtual bool OnItemFocusSet(const int index); //--- neu gezeichnet bool Redraw(void); bool RowState(const int index,const bool select); bool CheckView(void); }; //+------------------------------------------------------------------+ //| Gemeinsamer Handler für Diagrammereignisse| //+------------------------------------------------------------------+ EVENT_MAP_BEGIN(CListView) ON_INDEXED_EVENT(ON_CLICK,m_rows,OnItemClick) ON_INDEXED_EVENT(ON_MOUSE_FOCUS_SET,m_rows,OnItemFocusSet) EVENT_MAP_END(CWndClient)
bool CListView::OnItemFocusSet(const int index) { //--- "Zeile" auswählen Select(index+m_offset); //--- Benachrichtigung senden EventChartCustom(CONTROLS_SELF_MESSAGE,ON_CHANGE,m_id,0.0,m_name); //--- behandelt return(true); }
Ich habe eine Frage: wenn ich den Zeitrahmen ändere (Neuinitialisierung), fliegt der Block in die obere linke Ecke (x=0, y=0)... wie kann man korrekt implementieren, dass die aktuellen Koordinaten des Blocks gespeichert werden?
HI: es gibt 2 Varianten in meinem Kopf:
1) Koordinaten in globale Variablen schreiben...
2) in eine Datei schreiben...
3) Neugierig auf Ihre professionelle Lösung für dieses Problem! Wie würden Sie es implementieren?

- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Graphical Interfaces I: Animation des graphischen Interfaces (Kapitel 3) :
In dem vorherigen Artikel haben wir eine Formular-Klasse (Form class) mit Steuerelementen (Controls) entwickelt. In diesem Artikel werden wir die Klasse mit Methoden auffüllen, welche es möglich machen, das Formular über den Chartbereich zu bewegen. Wir werden anschließend diese Komponente in den Kern der Bibliothek mit aufnehmen. Zudem werden wir sicherstellen, dass sich die Farbe der Form verändert, sobald sich die Maus darüber befindet.
Dieser Artikel ist die Fortsetzung des ersten Teils dieser Serie über grafische Interfaces. Der erste Artikel Grafisches Interface I: Vorbereiten der Bibliotheksstruktur (Kapitel 1) beschreibt im Detail wofür diese Bibliothek gedacht ist. Eine vollständige Liste mit Links zu diesem Artikel des ersten Teils, finden Sie am Ende von jedem Kapitel. Zudem finden Sie dort eine Möglichkeit das Projekt, entsprechend dem aktuellen Entwicklungszustand, herunterzuladen. Die Dateien müssen in den gleichen Verzeichnissen untergebracht werden, so, wie Sie auch in dem Archiv abgelegt sind.
Autor: Anatoli Kazharski