Wie stelle ich fest, ob die Bildlauftaste gedrückt ist oder nicht und wenn ja, drücke ich sie! - Seite 4

 
Zhunko:

Wenn Leo aufgepasst hat, ist der Link zur Bibliothek meine WinUser32.mqh. Sie verfügt über alle erforderlichen Befehle und Funktionen. Es besteht keine Notwendigkeit, etwas zu exportieren.


33017 - Autoscroll entfernen/einstellen;
oder etwas anderes?
 
LEOK:

33017 - Autoscroll entfernen/einstellen;
oder etwas anderes?
Spy++ ist eine Hilfe.
Nehmen Sie die Informationen direkt von der Quelle.
 
LEOK:

33017 - Autoscroll entfernen/einstellen;
oder etwas anderes ?
Zur Kontrolle, ja. Für den Status benötigen Sie die Diagrammeigenschaften.
 

Ich persönlich verstehe immer noch nicht, wo das Problem bei der Verwendung von TB_GETSTATE liegt. Von welcher Fensteraktivität war die Rede? Es handelt sich um eine normale Fenstermeldung, die an das Steuerelement gesendet wird, genau wie WM_GETTEXT, BM_GETSTATE usw. Ich habe diese Nachrichten immer verwendet - ohne Probleme. Und die Anwendung empfängt auf die gleiche Weise Informationen von den Kontrollen mit diesen Nachrichten.

Dabei spielt es keine Rolle, ob das Fenster aktiv ist oder nicht.

 
Meat:

Ich persönlich verstehe immer noch nicht, was das Problem bei der Verwendung von TB_GETSTATE ist. Von welcher Fensteraktivität war die Rede? Es handelt sich um eine normale Fenstermeldung, die an das Steuerelement gesendet wird, genau wie WM_GETTEXT, BM_GETSTATE usw. Ich habe diese Nachrichten immer verwendet - ohne Probleme. Und die Anwendung empfängt auf dieselbe Weise Informationen von den Kontrollen mit diesen Nachrichten.

Es spielt keine Rolle, ob das Fenster aktiv ist oder nicht.

Dieses Panel funktioniert nur mit dem aktiven Diagramm. Was geschieht, wenn sich die Aktivität des Fensters kurz vor dem Senden der Nachricht ändert? Es wird ein weiteres Diagrammfenster aktiv. Dementsprechend erhalten Sie die Schaltflächenposition für das andere Fenster und nicht für Ihr eigenes. Wie können Sie in diesem Fall die Aktivität des Fensters, für das Sie die Position der Schaltfläche ermitteln möchten, mit der zu sendenden Nachricht synchronisieren? Geschieht dies nicht, kommt es zu einer Vielzahl unerwarteter Fehler. Selbst mit DLL ist dies nicht offensichtlich.

Es ist einfacher und zuverlässiger, sie über die Grafikeigenschaften zu erhalten.

 
Zhunko:

Dieses Panel funktioniert nur mit dem aktiven Stundenplan. Was passiert, wenn sich die Fensteraktivität kurz vor dem Versenden der Nachricht ändert? Ein weiteres Diagrammfenster wird aktiv. Dementsprechend erhalten Sie die Schaltflächenposition für ein anderes Fenster und nicht für Ihr eigenes. Wie können Sie in diesem Fall die Aktivität des Fensters, für das Sie die Position der Schaltfläche ermitteln möchten, mit der zu sendenden Nachricht synchronisieren? Geschieht dies nicht, kommt es zu einer Vielzahl unerwarteter Fehler. Selbst mit DLL ist dies nicht offensichtlich.

Es ist einfacher und zuverlässiger, sie über die Grafikeigenschaften zu erhalten.


Bitte geben Sie mir ein Beispiel für die Verwendung (Code): wie man es über Graph-Eigenschaften zu bekommen?!
 
LEOK:
Bitte geben Sie mir ein Beispiel für die Verwendung (Code): wie man dies durch die Graph-Eigenschaften zu erhalten?
Imitieren Sie den Befehl, um die Diagrammeigenschaften zu öffnen.
Warten Sie auf den modalen Dialog.
Finden Sie es.
Finden Sie das gewünschte Element.
Modalen Dialog schließen.

Welche Fragen Sie haben...
 
Zhunko:

Dieses Panel funktioniert nur mit dem aktiven Stundenplan. Was passiert, wenn sich die Fensteraktivität kurz vor dem Versenden der Nachricht ändert? Ein weiteres Diagrammfenster wird aktiv. Dementsprechend erhalten Sie die Schaltflächenposition für ein anderes Fenster und nicht für Ihr eigenes. Wie können Sie in diesem Fall die Aktivität des Fensters, für das Sie die Position der Schaltfläche ermitteln möchten, mit der zu sendenden Nachricht synchronisieren? Geschieht dies nicht, kommt es zu einer Vielzahl unerwarteter Fehler. Selbst mit DLL ist dies nicht offensichtlich.

Es ist einfacher und zuverlässiger, sie über die Karteneigenschaften zu erhalten.

Nun, Sie können die Aktivierung der erforderlichen Karte zunächst erzwingen. Überprüfen Sie auch den Namen des Hauptterminalfensters, um die Zuverlässigkeit zu gewährleisten. Sie sollte den Namen des gewünschten Diagramms enthalten. Allerdings bestehe ich nicht darauf, vielleicht ist Ihre Version noch bequemer, weil Sie die Karte nicht umstellen müssen. Aber das Fenster mit den Diagrammeigenschaften wird blinken :)

 
Meat:

Nun, Sie können zunächst die gewünschte Karte zwangsweise aktivieren. Überprüfen Sie auch den Namen des Hauptterminalfensters, um sicherzugehen. Sie sollte den Namen der gewünschten Karte enthalten. Allerdings bestehe ich nicht darauf, wahrscheinlich ist Ihre Version immer noch bequemer, denn es besteht keine Notwendigkeit, die Karte zu wechseln. Aber das Fenster mit den Diagrammeigenschaften wird angezeigt :).

Sicherlich ist es möglich, sie zu aktivieren. Aber wie synchronisiert man sie? Die Fensteraktivität kann jederzeit durch ein beliebiges Programm oder durch den Benutzer selbst deaktiviert werden. Wie kann dies gelöst werden? Das ist ein sehr unbequemer Weg.

Ja. Das Fenster flackert, aber sehr schnell. Wenn der Computer nicht ausgelastet ist, ist das fast nicht zu bemerken.

LEOK:

Geben Sie mir einen Anwendungsfall (Code): wie können Sie dies über Graph-Eigenschaften erhalten?

Sehen Sie in meiner WinUser32.mqh nach. Dort gibt es Befehlscodes. Sie müssen nicht in Spy nachsehen. Den Rest kennen Sie bereits.

Andrei hat es richtig geschrieben:

jartmailru:
Simulieren Sie den Befehl zum Öffnen der Diagrammeigenschaften.
Warten Sie den modalen Dialog ab.
Finden Sie es.
Suchen Sie den gewünschten Artikel.
Schließen Sie den modalen Dialog.
Sie müssen nur die Registerkarte wechseln, bevor Sie den Gegenstand finden können.
 
Meat:

Nun, Sie können zunächst die gewünschte Karte zwangsweise aktivieren. Überprüfen Sie auch den Namen des Hauptterminalfensters, um sicherzugehen. Sie sollte den Namen der gewünschten Karte enthalten. Allerdings bestehe ich nicht darauf, wahrscheinlich ist Ihre Version immer noch bequemer, denn es besteht keine Notwendigkeit, die Karte zu wechseln. Aber das Fenster mit den Diagrammeigenschaften wird blinken :)

Die Geschwindigkeit, mit der MT den Zustand der Taste aktualisiert, ist unbekannt. Daher ist es wünschenswert, eine Pause zwischen der Aktivierung des Fensters und dem Ablesen des Status einzufügen, was in manchen Fällen nicht ausreicht und die Programmlogik zum Scheitern bringt. Was Vadim tut, ist also in gewissem Sinne eine "industrielle Methode".
Grund der Beschwerde: