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
Ich schlage vor, den Maustastenstatus hinzuzufügen. Es hat keinen Einfluss auf die Geschwindigkeit, aber es kann nützlich sein)
Ich schlage vor, den Maustastenstatus hinzuzufügen. Es hat keinen Einfluss auf die Geschwindigkeit, aber es kann nützlich sein)
Ich kann dem nicht zustimmen, da ich darin nicht viel Sinn sehe.
Der Punkt ist, dass der Status von Maustasten und Tasten ein Ereignismodell ist, das nur dort verarbeitet werden sollte, wo das Auftreten dieses Ereignisses abgefangen wird, nämlich in OnChartEvent.
Sie werden keine Endlosschleife zur Abfrage des Auftretens eines Ereignisses außerhalb des Ereignishandlers einschränken. Welchen Sinn hat es also, diesen Status außerhalb von OnChartEvent zu platzieren, wenn die gesamte Verarbeitung dieser Klicks in OnChartEvent erfolgen sollte, dessen Status sich in lparam und sparam befindet.
Außer dem Zweck, eine neue Struktur der Mausereigniskennungen einzuführen, um die Lesbarkeit des Codes zu verbessern.
Ich kann dem nicht zustimmen, da ich darin keinen Sinn sehe.
Der Punkt ist, dass der Status von Maustasten und Tasten ein Ereignismodell ist, das nur dort behandelt werden sollte, wo das Auftreten dieses Ereignisses abgefangen wird, nämlich in OnChartEvent.
Sie werden keine Endlosschleife zur Abfrage des Auftretens eines Ereignisses außerhalb des Event-Handlers einschränken. Welchen Sinn hat es also, diesen Status außerhalb von OnChartEvent zu platzieren, wenn die gesamte Verarbeitung dieser Klicks in OnChartEvent erfolgen sollte, dessen Status sich in lparam und sparam befindet.
Außer dem Zweck, eine neue Struktur der Mausereigniskennungen einzuführen, um die Lesbarkeit des Codes zu verbessern.
Und warum dann die Mauskoordinaten speichern? ) Auch ereignisgesteuert )
Das mit der Schleife habe ich nicht verstanden...
Insbesondere brauchte ich den Status, um zu vermeiden, dass ein Teil des Objekts beim Ziehen mit der Maus gezeichnet wird.
Warum dann Mauskoordinaten speichern? ) Auch ereignisgesteuert )
Mauskoordinaten sind eine andere Sache. Die aktuellen Mauskoordinaten sind keine Ereignisinformation. Das Ereignis ist ihre Änderung.
Es kann vorkommen, dass Mauskoordinaten außerhalb von OnChartEvent benötigt werden. Zum Beispiel, hier.
Ich habe das mit der Schleife nicht verstanden...
Insbesondere wurde der Status benötigt, um zu vermeiden, dass ein Teil des Objekts beim Ziehen mit der Maus gezeichnet wird.
Nun, wenn man die Maus zieht, wird der Befehl zum Neuzeichnen eines Teils des Objekts von OnChartEvent in dem Moment aufgerufen, in dem sich die Mauskoordinate ändert und die Maus gedrückt wird, und OnChartEvent hat diesen Status, warum sollte man ihn in die Window-Struktur einbetten?
Würde man dasselbe nicht von OnChartEvent aus tun und gleichzeitig in der Instanz W der Window-Struktur MouseStatus vorhanden sein, müsste man eine Endlosschleife zur Abfrage dieses Parameters (MouseStatus) organisieren, um den Moment des Loslassens der Maustaste zu erwischen, was die CPU zum Stillstand bringen würde.
Diese Schleife ist nicht nur bei OnChartEvent notwendig.
Ich möchte nur sagen, dass es möglich und notwendig ist, den Status der Maustaste nur in OnChartEvent zu verwenden, wo er bereits vorhanden ist.
Wenn ich falsch liege, geben Sie mir bitte ein konkretes Beispiel, wo dieser Status nicht von OnChartEvent benötigt würde.
Wenn ich falsch liege, geben Sie bitte ein konkretes Beispiel, in dem dieser Status von etwas anderem als OnChartEvent angefordert wird.
Ich habe oben ein Beispiel geschrieben, alles funktioniert gut)
In OnChartEvent, wenn die Maus bewegt wird, ändern wir die Parameter und geben den Befehl, die Leinwand neu zu zeichnen. Ohne einen Parameter in der Struktur müssten wir sparam an ein Objekt übergeben, von dort an ein anderes Objekt und von dort an die Methode Draw().
Die Mauskoordinaten sind eine andere Sache. Die aktuellen Mauskoordinaten sind keine Ereignisinformation. Das Ereignis ist ihre Änderung.
Es kann vorkommen, dass die Mauskoordinaten außerhalb von OnChartEvent benötigt werden. Zum Beispiel, hier.
Nun, wenn Sie die Maus ziehen, wird der Befehl zum Neuzeichnen eines Teils des Objekts von OnChartEvent in dem Moment aufgerufen, in dem sich die Mauskoordinate ändert und die Maustaste gedrückt ist, und OnChartEvent hat diesen Status, warum sollte es in die Window-Struktur eingebettet werden?
Wenn Sie dasselbe nicht von OnChartEvent aus tun würden und gleichzeitig in der Instanz W der Window-Struktur MouseStatus vorhanden wäre, müssten Sie eine Endlosschleife der Abfrage dieses Parameters (MouseStatus) organisieren, um den Moment des Loslassens der Maustaste zu erwischen, was die CPU zum Stillstand bringen würde.
Diese Schleife wird nicht nur in OnChartEvent benötigt.
Ich möchte nur sagen, dass Sie den Status der Maustaste nur in OnChartEvent verwenden können und sollten, da er dort bereits vorhanden ist.
Wenn ich falsch liege, dann geben Sie mir ein konkretes Beispiel, wo dieser Status nicht von OnChartEvent benötigt würde.
Sehr seltsame Argumentation. Es gibt überhaupt keine Logik.
Sowohl Mauskoordinaten als auch gedrückte Tasten sind externe Zustände. Sie werden über Parameter an den Handler übergeben, und wenn sie in den internen Variablen des Objekts abgelegt werden (was sicherlich nützlich ist), sollten sie dort als Ganzes und nicht in Teilen vorhanden sein. Eine Bibliothek ist per Definition etwas, das nicht für den eigenen Bedarf, sondern in verallgemeinerter Form und unter Berücksichtigung der potenziellen Bedürfnisse anderer erstellt wird. Man kann nicht alle Bedürfnisse im Voraus kennen, also macht man keine künstlichen Einschränkungen wie diese.
Ich habe oben ein Beispiel geschrieben, alles funktioniert gut)
In OnChartEvent, wenn die Maus bewegt wird, ändern wir die Parameter und geben den Befehl, die Leinwand neu zu zeichnen. Ohne einen Parameter in der Struktur müssten wir sparam an ein Objekt übergeben, von dort an ein anderes Objekt und von dort an die Methode Draw().
Dies ist ein Klassiker des Genres - in allen Fensterbibliotheken werden die Zustände der Maustasten in einer einzigen Struktur mit den Cursor-Koordinaten übergeben.
weil sie alle zusammen eine Entität beschreiben und überhaupt nicht getrennt werden können.
aktualisiert auf Version 1.29
neu:
1. Hinzufügen der folgenden Defines zur Vereinfachung der Codeerstellung und zur Verbesserung der Lesbarkeit:
2. Hinzufügen des Parameters MouseStatus zur Window-Struktur, der 4 Werte annehmen kann, wie von den Workern gefordert: