Rechte Maustaste VOR dem möglichen Rechtsklick-Ereignis sperren.
-
Zunächst einmal begrüße ich alle Forumsteilnehmer als neues Mitglied in dieser Runde!
Obwohl hier neu, gehöre ich eher zu den Oldies mit mehr als 30-jähriger Erfahrung und kommenden und gehenden Programmiersprachen un Kompilern. Soweit ich mich erinnern kann, hat - bis auf die alten Dialekte, wie z.B. Fortran - von den neueren keines wirklich länger überlebt. Es ist darum müßig, über Vor- und Nachteile von Programmiersprachen und Compilern zu diskutieren. Was sich im Endeffekt durchsetzt, ist Beharrlichkeit und eine Portion Glück.
Ich wende mich heute an das Borland Formum, weil mich aktuell ein Problem aus älterer Zeit verfolgt, nämlich ein Fehler in einem Borland ToolBar-Control, das wohl zum Umfang des 5.1-Compilers gehört.
Der Fehler äußert sich abhängig vom Betriebssystem und tritt nachweislich ab XP auf: Ein Rechtsklick auf den leeren Teil der ToolBar-Dialogfläche führt zum Einfrieren des Programms. Ich muß dazu schreiben, daß ich fast ausschließlich auf SDK-Ebene programmiere und über diese Methode in die inneren Organe des Codes eingreife.
Kurzum: Es geht darum, zu verhindern, daß während sich der Cursor über der leeren Toolbarfläche befindet, ein Rechtsklick an das Programm weitergeleitet wird. Die Standardmethoden können hier natürlich nicht angewendet werden. Ich denke, es könnte mit dem Abfangen des KeyDown-Ereignisses gelingen, daß ja noch vor dem eigentlichen Programmprozess liegt. Ansonsten besteht eigentlich nur die Möglichkeit, den MouseMove-Event über dem ToolBar Control zu erfassen und damit ein Elektromagnetisches Relais in der Maus zu steuern, welches einen Keil unter die rechte Maustaste schiebt, bis der Cursor den gefährlichen Bereich wieder verlassen hat. http://www.c-plusplus.net/forum/images/smiles/biggrin.gif

-
Hm, ich verstehe das Problem nicht wirklich. Schließlich musst Du die Rechtsklick-Funktion doch selbst geschrieben haben. Wo ist das Problem, dort eine entsprechende Überprüfung durchzuführen (TToolBar::ControlAtPos())?
-
garant schrieb:
Zunächst einmal begrüße ich alle Forumsteilnehmer als neues Mitglied in dieser Runde!
Sollte ein neues Mitglied nicht registriert sein? Sonst ist es doch kein Mitglied? Oder ist das biologisch gemeint (mit Glied)?

Joe_M. schrieb:
Hm, ich verstehe das Problem nicht wirklich. Schließlich musst Du die Rechtsklick-Funktion doch selbst geschrieben haben. Wo ist das Problem, dort eine entsprechende Überprüfung durchzuführen (TToolBar::ControlAtPos())?
Wenn ich garant richtig verstehe, friert das Prog vor dem Aufruf der Methode ein... Da besteht jetzt wohl Klärungsbedarf!
Also garant, wird die Methode noch aufgerufen, oder nicht?
Edit: Ach doch nix zu editieren, sry.