| |
|
|
- Seite 1 - |
|
Clemens Meier | Hat jemand eine Idee, wie man verhindern kann, dass bei einem rechts-Klick mit der Maus in einem AtlAxWin-Control das ATL-Kontextmenu aufgeht?
Erstellt wird das Control so:
Web%=Control("AtlAxWin",Html$,$50000000,100,100,300,300,%HWnd,0,0,$200)
Also mit Weglassen von einem Stil ist es wohl nicht getan. |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
| Schau entweder unter
a) HTML b) RECHTE c) MAUS d) HOOK
oder
e) SPERREN
nach.
Unter all diesen 5 Schlagworten wirst Du fündig.
Man darf sich halt nicht drauf beschränken zu glauben das etwas grad unter dem Schlagwort gepostet ist was man selbst für entscheident halten würde. Versuche Dir einfach vorzustellen was der Codesnippetposter für Schlagworte im Titel wählen würde.
Wenn Du also ein Problem mit der rechten Maustaste hast, schau einfach unter Rechte nach, und nicht nur unter ATL oder Kontext. |
|
|
| |
|
|
|
Clemens Meier | Ich habe kein Problem mit der rechten Maustaste, meine funktioniert. Es geht um das Kontextmenu, welches man leicht auch mit der linken oder mittleren Maustaste erreicht. Warum also soll ich nach der rechten Maustaste suchen? Macht nicht wirklich Sinn! Und wie soll ich auf Hook kommen? (Abgesehen davon, was ist überhaupt ein Hook?). Unter HTML habe ich in der Suche nachgesehen, doch nichts in der Richtung gefunden. Vielleicht solltest du die Suche entsprechend erweitern, dass auch Beiträge in den Codesnippes gefunden werden.
Außerdem ist dein Beitrag mal wieder undokumentiert, selbst mit Kommentaren innerhalb des Quelltextes bist du äußerst sparsam. So kommt die Variable R% vor, Entweder ist die 1 oder 0. Wie kommt man an die anderen Messages wie getFocus? Zudem funktioniert createhtmlbox bei mir nicht. Profan 10 ? Welche Stils stecken dahinter? Und was mache ich mit den anderen Elementen des Dialogs? Wird damit nur die rechte Maustaste abgefangen und andere werden normal behandelt? ...
Das Beispiel von Frank mit dem subclassing ist mir tatsächlich verständlich, auch wenn ich keine Ahnung habe, was subclassing bedeutet. Ich nehme einfach mal an, dass mit subclassing die Ersetzung der eigentlichen Routine gemeint ist, also eher ein replaceclassing
[quote:171dc9098d]Mir fällt nämlich auf das Du zum wiederholten Male bereits dort beantwortete Fragen stellst.[/quote:171dc9098d] Welche noch? Die Ankündigung zum Chat, das Problem mit dem SK-Control? Welche Frage meinst du? |
|
|
| |
|
|
|
| Du stellst mein Wink auf die Codesnippets falsch - ja sogar böse dar - - bitte betrachte mein Initialposting.
Es gibt auch keinen Grund sich persönlich angegriffen zu fühlen - hier ist also keine Rechtfertigung Deinerseits nötig.
Deine Ausgangsfrage war: [quote:aecc895a6e]Hat jemand eine Idee, wie man verhindern kann, dass bei einem rechts-Klick mit der Maus in einem AtlAxWin-Control das ATL-Kontextmenu aufgeht?[/quote:aecc895a6e] Warum Du mir jetzt vermitteln musst: Ich habe kein Problem mit der rechten Maustaste verstehe ich nicht.
Alles was ich versuche Dir zu vermitteln ist: Wenn es dir darum geht die rechte Maustaste zu sperren schaue unter den Codenippets unter Rechte oder Maustaste nach - denn dort steht die Lösung.
Der Wink von Frank (SubClassing) ist zwar schlüssig - funktioniert aber nicht da das Control a) nicht nur 1 Control ist und b) M$ da wohl selbst einige Spielereien eingebaut hat welche das SubClassing verhindern.
In diesem Fall hilft nur ein Hook - aber ich kann mich natürlich auch irren.
Genau dieses Thema ist aber sehr sehr oft angesprochen worden, auch im Phorum von Roland. Lange Zeit gabs dafür zwar Anregungen aber keine Lösungen. Erst kürzlich gelang es mir einen knackigen Source zu backen welcher genau dieses Thema erschlägt.
Das ich mit Kommentaren spare sei mir gestattet solange ich nicht mit den Kommentaren spare wie leider die meisten mit den Codesnippets. Im übrigen steht es jedem Frei nichtkommentierte Sources zu kommentieren und neu-zu-posten. Aber das macht ja schliesslich auch keiner... |
|
|
| |
|
|
|
Clemens Meier | Lieber iF, ich erspare mir hier jetzt wohlwissend meinen Kommentar. Aber als Hinweis: Ich benutze kein XPSE. Viele anderen benutzen kein XPSE. Na? Funkts.
Und was ein Hook ist, weiß ich immer noch nicht, genauso wenig was die Zahl $204 in deinem Posting bedeutet und woher die Prozedur weiß, dass er auf meine HTML-Box reagieren soll bzw. was es mit dem Return-Wert auf sich hat. Und da ich noch zahlreiche andere Controls hat, muss man da auch eigene Prozeduren schreiben .......... ?. |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
| [quote:230df52434]Lieber iF, ich erspare mir hier jetzt wohlwissend meinen Kommentar.[/quote:230df52434] Nein nein, bitte immer heraus damit - um die Leute nicht unwissend zu lassen gib es schliesslich solch Communitys.
[quote:230df52434]Aber als Hinweis: Ich benutze kein XPSE. Viele anderen benutzen kein XPSE. Na? Funkts.[/quote:230df52434] Tut mir leid aber da funkt nichts da die Übersetzung von createhtmlbox nachlesbar ist - nicht nur in der Hilfe des XPSE. Es kann für mich nicht ausschlaggebend sein ob jemand XPSE nutzt oder nicht - wenn ich createhtmlbox als Alias in einem Beispiel aufführe dann sollte jeder wissen was gemeint ist. Das hat nichts mit Funken zu tun.
[quote:230df52434]Und was ein Hook ist, weiß ich immer noch nicht, genauso wenig was die Zahl $204 in deinem Posting bedeutet und woher die Prozedur weiß, dass er auf meine HTML-Box reagieren soll bzw. was es mit dem Return-Wert auf sich hat. Und da ich noch zahlreiche andere Controls hat, muss man da auch eigene Prozeduren schreiben .......... ?[/quote:230df52434] Naja da könnte es helfen einfach im entsprechenden Thread nachzufragen. Was das damit zutun haben soll ob jemand XPSE nutzt, oder was das damit zutun haben soll das man dieses oder jenes nicht versteht - kann ich nicht nachvollziehen.
Die Zynik in Deinen Postings kann ich nicht nachvollziehen - ich meine mir ist auch warm - cooldown bitte denn sonst würde ich es von Dir als ziemlich unfair einstufen mir gegenüber (dem David), nach dem Finden einer von mir geposteten Lösung in der von mir Programmierten Community zynisch gegenüberzutreten und sich darüber ein wenig zu echauffieren das ich nicht auch noch die Zeit aufbringe neben all dem hier auch noch genügend Rems in den Sources zu verteilen und Fachbegriffe zu erklären. Mach Dir aber nicht unnötig nen Kopp denn auch so manch andere neue Mitglieder haben bereits erfahren das ich keinesfalls nachtragend bin. Bitte verwechsle mein Anspruch auf das letzte Wort nicht mit Egozentrik denn als Betreiber erwartet man das von mir - ich bitte um Nachsicht. |
|
|
| |
|
|
|
Frank Abbing | Probier die Subclassing-Methode. Ich denke, dass sie funktioniert. Die Mouse-Hook Methode hat leider den Nachteil, dass Hooks das System stark ausbremsen. |
|
|
| |
|
|
|
| [quote:554143770a=Frank Abbing]Probier die Subclassing-Methode. Ich denke, dass sie funktioniert. Die Mouse-Hook Methode hat leider den Nachteil, dass Hooks das System stark ausbremsen.[/quote:554143770a] Hooks gelten im Allgemeinen als sehr Systemlastig - das ist sehrwohl richtig. Das rührt aber durch die Anwendungsgebiete der Hooks da diese oft benötigt werden um sehr allgemeine bzw. grundlegende Funktionen abzufangen. Und allgemeine/grundlegende Funktionen treten nunmal sehr viel öfter als spezielle Funktionen auf - dadurch der Wink mit der Systemlast.
Speziell in diesem Fall jedoch - wo es tatsächlich nur um den kurzen Augenblick des Rechtsklicks geht - kann nicht wirklich vom Ansteigen von Systemlast die Rede sein denn so blöde ist M$ Windows nun auch wieder nicht.
Aber Frank hat schon recht - wenn es ohne Hook geht dann gilt es im Allgemeinen als besser.
Im Fall des Atl-Controls mag ich mich erinnern einige Spielereien über SubClassing probiert zu haben - und ich bin gescheitert. Ein zuverlässiges Verhindern des Aufrufens vom Kontextmenü gelang mir nicht per SubClassing, anderen wohl leider auch nicht sonst hätte irgendwann die Frage nach dem verhindern des Rechtsklicks im IE-Control vor meinem Beispiel beantwortet werden können.
Vielleicht gelingt es aber dem Frank - er ist dabei deutlich firmer als ich. |
|
|
| |
|
|
|
| Das Thema im Phorum: [...] |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
Falls es sich um eine lokale oder sonstwie vorgegebene HTML-Datei handelt, könnte man versuchen, das Kontextmenü per Script im HTML-Quelltext zu unterdrücken. Kann mich dunkel erinnern, dass sowas machbar ist...
HTH Pascal |
|
|
| |
|
|
|
| Diese Variante benötigt dann aber JavaScript.
|
|
|
| |
|
|
|
| Nur um eine Irreführung auszuschließen merke ich an das das Problem des Sperrens der rechten Maustaste mittels einem bei den Codesnippets einsortiertem Beispiel per Hook erfolgreich beseitigt ist.
Der o.g. JS muss als nicht in den HTMLText eingebunden werden. |
|
|
| |
|
|
|
Frank Abbing | [quote:70b9c6200f]iF: Im Fall des Atl-Controls mag ich mich erinnern einige Spielereien über SubClassing probiert zu haben - und ich bin gescheitert. Ein zuverlässiges Verhindern des Aufrufens vom Kontextmenü gelang mir nicht per SubClassing[/quote:70b9c6200f] So, ich habs jetzt ausprobiert und auch nicht zum Laufen bekommen. Anscheinend verändert das COM diverse Messages oder sendet diese erst nach dem Subclassing. Jedenfalls kamen die Messages trotzdem durch. Eventuell müsste man alle Parentcontrols des Atl-Control subclassen, aber das ist wohl zu aufwendig. Dann lieber den Mouse-Hook . |
|
|
| |
|
|