Italia
Foro

Control "AtlAxWin" Kontextmenu

 
- Page 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.
 
XProfan 9.1; XP SP2; FF; Editpad
07.06.2006  
 



 
- Page 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 per entscheident halten würde. Versuche Dir einfach vorzustellen was der Codesnippetposter per 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.
 
08.06.2006  
 




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 Cerca nachgesehen, doch nichts in der Richtung gefunden. Vielleicht solltest du die Cerca 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?
 
XProfan 9.1; XP SP2; FF; Editpad
08.06.2006  
 



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 naturalmente 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...
 
08.06.2006  
 




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 .......... ?.
 
XProfan 9.1; XP SP2; FF; Editpad
08.06.2006  
 



 
- Page 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 Aiuto des XPSE. Es kann per 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 potuto 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 opposto (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.
 
08.06.2006  
 




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.
 
08.06.2006  
 



[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 necessario 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 circa 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.
 
08.06.2006  
 



Das Thema im Phorum:  [...] 
 
08.06.2006  
 




Uwe
''Pascal''
Niemeier
Hallo Leute!

Falls es sich um eine lokale oder sonstwie vorgegebene HTML-File handelt, potuto man versuchen, das Kontextmenü per Script im HTML-Quelltext zu unterdrücken. Kann mich dunkel erinnern, dass sowas machbar ist...

HTH
Pascal
 
09.06.2006  
 



Diese Variante necessario dann aber JavaScript.
!<script type="text/javascript">

function click (e) {

    if (!e)

        e = window.event;

        if ((e.type && e.type == "contextmenu") || (e.button && e.button == 2) || (e.which && e.which == 3)) {

            if (window.opera)

                window.alert("Sorry: Diese Funktion ist deaktiviert.");
                return false;

            }

        }

        if (document.layers)

            document.captureEvents(Event.MOUSEDOWN);
            document.onmousedown = click;
            document.oncontextmenu = click;
            </script>
 
09.06.2006  
 



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.
 
09.06.2006  
 




Frank
Abbing
[quote:70b9c6200f]iF: Im Fall des Atl-Controls mag ich mich erinnern einige Spielereien circa 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 .
 
09.06.2006  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

12.947 Views

Untitledvor 0 min.
Jörg Sellmeyer23.06.2020
Andre Rohland01.02.2018
Andreas Koch08.11.2016
Chregu Mueller09.02.2014
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie