Italia
Foro

Kontextmenü von HTMLWin verhindern

 
- Page 1 -



Jac
de
Lad
Ich hab schon alles probiert, was mir dazu eingefallen ist. Weiß jemand, wie ich das Kontextmenü in einem HTMLWin verhindern kann (Rechtsklick) und stattdessen zum Beispiel ein eigenes Mostra kann? Ich denke mal, das geht circa die subclassproc, aber ich habs einfach nicht hingekriegt.

Jac
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
12.07.2008  
 



 
- Page 2 -


Jac
Keine Ahnung. Ich hab mir das Ergebnis mittels %sMessage Mostra lassen.


Für solche Fälle nutze ich Konstantinopel  [...]  .

Der Trick: Gib mal oben in das Eingabefeld 32 = w ein.
 
12.07.2008  
 




@Frank: ... Hast du ne gecrackte Version?


@Jac: Eine hier nicht gestattete Frage, selbst wenn sich dahinter ein Freeware-Tool verbirgt. Ich erwähne das nicht wegen Dir, sondern per Mitlesende.

@Frank: Hook dafür ansetzen ist naturalmente Tesafilm mit dem Hammer befestigen, und es ist auch sicher nicht meine Lieblingslösung zum Thema. Nennen wir es Workaround bis eine adäquatere Lösung gepostet wurde.
 
12.07.2008  
 




Frank
Abbing

@Frank: Hook dafür ansetzen ist naturalmente Tesafilm mit dem Hammer befestigen, und es ist auch sicher nicht meine Lieblingslösung zum Thema. Nennen wir es Workaround bis eine adäquatere Lösung gepostet wurde.


Kein Grund zum Rechtfertigen. Ich liebe mitunter ja auch Brachiallösungen. Ich meine nur, es gab auch eine simple Lösung, nur finde ich sie nicht wieder...

32 scheint WM_SETCURSOR zu sein. Wirklich nicht die richtige Message.
 
12.07.2008  
 




Jac
de
Lad
@iF: Sorry, war als Scherz gemeint.

@Frank: Irgendwie kommts bei mir nicht so richtig in die Gänge. Ich raff das nicht.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
12.07.2008  
 




Detlef
Jagolski
Hallo Jac,

noch ein Versuch:
KompilierenMarkierenSeparieren
 $P+
SetErrorLevel 0
Declare hSys&
Declare appexit%
SetTrueColor 1
WindowStyle $003F
WindowTitle DesignForm
Window %maxX + 5,114 - 498,415
Cls 500
var html&=Create(HTMLWin,%hWnd,D:Anpassen...........................INDEX.HTM,1,0,0,600,400)
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    WaitInput

    If %key = 2

        appexit%=1

    ElseIf %key = 4

        Fenstergröße

    ElseIf %key = 5

        Hilfe

    EndIf

Wend


Ich glaube Du muss die HTML Seite Anpassen.

Saluto

Detlef

6 kB
Hochgeladen:12.07.2008
Downloadcounter113
Download
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
12.07.2008  
 



Über JS, auch interessant. Geht aber weit aus kürzer! Leider kommt er wenn er darüber das Kontextmenü erledigt schlecht wieder raus aus der Seite ins Programm. (zumindest ohne ocx)
 
12.07.2008  
 




Detlef
Jagolski
Hallo IF,

habe ich nur schnell aus dem Bestand zusammen Kopiert.

Saluto

Detlef
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
12.07.2008  
 




Andreas
Miethe



KompilierenMarkierenSeparieren
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
13.07.2008  
 




Jac
de
Lad
@Andreas: Danke, die Lösung gefällt mir am besten.

@Detlef: Auch danke, aber irgendwie verstehe Io l' Ansatz nicht. Ich vermute aber, das hier die Webseite den Rechtklick bearbeitet.
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
13.07.2008  
 




Uwe
''Pascal''
Niemeier
Hallo Leute!

Der Vollständigkeit halber, auch wenn es den meisten wohl zu kompliziert ist ...
Eine Möglichkeit, das Kontextmenü eines WebBrowser-Controls zu ändern ist die Erstellung eines eigenen IDocHostUIHandler-Interfaces, das anstelle des Originals eingesetzt wird.
Dieses Interface enthält u.A. die Methode ShowContextMenu, per die eine Profan-Proc verwendet werden kann:
(Voraussetzung: OCX-Package 2 + XProfan 10)
KompilierenMarkierenSeparieren
window 10,10-500,400
usermessages 16
 $H Messages.ph
 $H Windows.ph
 $H ocx2.ph
 $I ocx2.inc
ocxInit()
declare VTable#
dim VTable#,76

proc CreateIMD---------------------------CreateInterfaceMethodDummy

    var a&=~GlobalAlloc(0,16)
    long a&,0=-1192457387,&(2),-1034033781,&(1)*4+4
    return a&
    endproc-------------------------------------------------------------

    proc ShowContextMenu--------------------------------ShowContextMenu

        parameters This&,ID&,Point&,IUnknown&,IDispatch&
        ~ScreenToClient(%hwnd,Point&)
        createmenu
        case ID&=0:appendmenu 101,Kontextmenü leerer Bereich
        case ID&=1:appendmenu 102,Kontextmenü Bild
        case ID&=4:appendmenu 103,Kontextmenü markierter Text
        case ID&=5:appendmenu 104,Kontextmenü Link
        trackmenu long(Point&,0),long(Point&,4)
        ~RedrawWindow(%hwnd,0,0,$485)
        return 0
        endproc-------------------------------------------------------------

        proc InitICustomDoc----------------------IDocHostUIHandler-Interface

            parameters Object&
            long VTable#,0= CreateIMD(2,1)QueryInterface
            long VTable#,4= CreateIMD(0,0)AddRef
            long VTable#,8= CreateIMD(0,0)Release
            long VTable#,12=procaddr(ShowContextMenu,5)
            long VTable#,16=CreateIMD(1,1)GetHostInfo
            long VTable#,20=CreateIMD(5,1)ShowUI
            long VTable#,24=CreateIMD(0,0)HideUI
            long VTable#,28=CreateIMD(0,1)UpdateUI
            long VTable#,32=CreateIMD(1,1)EnableModeless
            long VTable#,36=CreateIMD(1,1)OnDocWindowActivate
            long VTable#,40=CreateIMD(1,1)OnFrameWindowActivate
            long VTable#,44=CreateIMD(3,1)ResizeBorder
            long VTable#,48=CreateIMD(3,1)TranslateAccelerator
            long VTable#,52=CreateIMD(2,1)GetOptionKeyPath
            long VTable#,56=CreateIMD(2,1)GetDropTarget
            long VTable#,60=CreateIMD(1,1)GetExternal
            long VTable#,64=CreateIMD(3,1)TranslateUrl
            long VTable#,68=CreateIMD(2,1)FilterDataObject
            long VTable#,72=VTable#
            var IFace&=VTable#+72
            var Document&=ocxGet(Object&,Document)
            var ICustomDoc&=QueryInterface(Document&,{3050f3f0-98b5-11cf-bb82-00aa00bdce0b})
            CallMethod(ICustomDoc&,3,IFace&)--ICustomDoc::SetUIHandler
            ocxRelease(ICustomDoc&,Document&)
            endproc-------------------------------------------------------------
            declare Control&
            var URL$=C:Test.html---Irgendeine HTML(!)-Datei
            var Object&=ocxCreate(Url$,%hwnd,10,10,400,300,$50b00000,addr(Control&))
            InitICustomDoc(Object&)

            while 1

                waitinput
                case %umessage=16:break
                settext %hwnd,str$(%menuitem)

            endwhile

            ocxRelease(Object&)
            destroywindow(Control&)
            ocxDeInit()

PS: Die Proc CreateIMD erzeugt per Embedded ASM eine Art Dummy, damit nicht per jede Methode eine eigene Proc eingebaut werden muß. Genauere Beschreibung und weitere Demos zum Thema Event-Handling (Ereignis-Auswertung) werden im OCX-Package 3 enthalten sein, so es denn jemals fertig wird und unter XProfan 11 lauffähig ist

SeeYou
Pascal
 
15.07.2008  
 




Frank
Abbing
Hehe, klasse!
 
15.07.2008  
 



Mir kribbeln die Finger seit er von ocx3.inc spricht...

Hab das naturalmente (auch zur Vlstndgkt) mit hier aufgenommen:  [...] 
 
15.07.2008  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.952 Views

Untitledvor 0 min.
Rainer Hoefs25.06.2023
Peter Max Müller17.10.2017
HofK08.09.2016
Paul Glatz01.04.2015
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