| |
|
|
Jac de Lad | Danke Rolf, jetzt ist alles klar (oder alles futsch...mal sehen).
@iF: Du musst mir helfen: Ich kriege kein funktionsfähiges Beispiel hin, wo ein Rechtsklick in einer Gridbox abgefangen wird. Aber lass dir Zeit, ich geh gleich ins Bett und bin morgen auf ner Beerdigung und Samstag bei meiner Freundin, also wahrscheinlich erst Sonntag abend wieder drin.
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 | 14.09.2006 ▲ |
|
|
|
|
| |
|
| |
|
|
|
Jac de Lad | |
|
| 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 | 14.09.2006 ▲ |
|
|
|
|
| Hm kein Problem klappt doch wunderbar: KompilierenMarkierenSeparieren {$cleq}
$U on.pcu = on.
Def GetSysColor(1) !User32,GetSysColor
declare lb&,dlg&
//unsichtbares Hauptfenster damit lecker messages angekommen
windowstyle 80 | 1024
window 0,0 - 0,0
showwindow(%hwnd,0)
//
windowstyle 512+8
dlg&:=createdialog(0,MyDlg,100,100,640,480)
lb& = create(GridBox,dlg&,0;0;340;0;2;100,0,0,0,300,300)
on.event close ,dlg& ,12344
on.event ldklick ,lb& ,12345
on.event rklick ,lb& ,12346
while 1
waitinput
case %umessage==12344 : break
case %umessage==12345 : settext dlg&,dblklick +str$(&gettickcount)
case %umessage==12346 : .trackmenu
wend
on.delevent close ,dlg& ,12344
on.delevent ldklick ,lb& ,12345
on.delevent rklick ,lb& ,12346
on.close
end
proc .trackmenu
declare mx&,my&
my&:=hiword(&ulparam)
mx&:=loword(&ulparam)
createmenu
appendmenu 100,ll
Trackmenu_byxy_bydialog mx&,my&,dlg&
endproc
Proc Trackmenu_byxy
Parameters X&,Y&
Declare Gmp#,Dx&,Dy&
Dim Gmp#,8
External(user32,ClientToScreen,%Hwnd,Gmp#)
Dx&=Long(Gmp#,0)
Dy&=Long(Gmp#,4)
Trackmenu (X&-Dx&),(Y&-Dy&)
Dispose Gmp#
Endproc
Proc Trackmenu_byxy_bydialog
Parameters X&,Y&,H&
Declare Gmp#,Dx&,Dy&
Dim Gmp#,8
External(user32,ClientToScreen,H&,Gmp#)
Dx&=Long(Gmp#,0)
Dy&=Long(Gmp#,4)
Trackmenu_byxy X&+Dx&,Y&+Dy&
Dispose Gmp class=s4 href='./../../function-references/xprofan/endproc/'>Endproc
|
|
|
| |
|
|
|
| Und dann hatte Roland im Phorum ebend noch etwas anderes geschrieben - ich darf mal Citazione:
So wird es ab RC5 - kommt heute Abend - funktionieren: KompilierenMarkierenSeparierenWindowStyle 112
window 100,100-600,500
Declare Hgrid&
hgrid& = create(GridBox,%Hwnd,0;0;340;0;2;100,0,0,0,width(%Hwnd),Height(%Hwnd))
Declare ende%
WhileNot ende%
WaitInput
IF Equ(%key,2)
Let ende%=1
ELSEIF getfocus(hgrid&)
If %childmessage = 516
CreateMenu
AppendMenu 100,Programm konfigurieren
AppendMenu 101,Eintrag hinzufügen
AppendMenu 102,Einträge bearbeiten
AppendMenu 103,Neue Gruppe anlegen
SubPopUp Gruppe wechseln
AppendMenu 104,Gruppe1
EndSub
Separator
AppendMenu 1000,Programmende
TrackMenu %MouseX, %MouseY
If MenuItem(1000)
ende% = 1
EndIf
EndIf
EndIf
EndWhile
Man beachte die neue Systemvariable %ChildMessage! Außerdem werden %MouseX und %MouseY jetzt auch bei Rechtsklick auf ein Dialogeleent korrekt gesetzt. Statt %ChildMessage potuto man nun auch %MousePressed = 2 abfragen. GrußRoland |
|
|
| |
|
|
|
Jac de Lad | Öhhm, ich schau mal was bei mir falsch corre. |
|
|
| 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 | 14.09.2006 ▲ |
|
|
|
|
Jörg Sellmeyer | Hast Du vielleicht wieder die LV auf ein anderes Control gesetzt? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 14.09.2006 ▲ |
|
|
|
|
| [quote:2f0666031a=Jörg Sellmeyer]Hast Du vielleicht wieder die LV auf ein anderes Control gesetzt?[/quote:2f0666031a] Hm das müsste eigendlich egal sein! |
|
|
| |
|
|
|
| Es ist egal: KompilierenMarkierenSeparieren {$cleq}
$U on.pcu = on.
Def GetSysColor(1) !User32,GetSysColor
declare lb&,dlg&,st&
window 0,0 - 640,480
dlg&:=%hwnd
st&:=create(Text,dlg&,,50,50,300,300)
lb& = create(GridBox,st&,0;0;340;0;2;100,0,0,0,300,300)
on.event close ,dlg& ,12344
on.event ldklick ,lb& ,12345
on.event rklick ,lb& ,12346
while 1
waitinput
case %umessage==12344 : break
case %umessage==12345 : settext dlg&,dblklick +str$(&gettickcount)
case %umessage==12346 : .trackmenu
wend
on.delevent close ,dlg& ,12344
on.delevent ldklick ,lb& ,12345
on.delevent rklick ,lb& ,12346
on.close
end
proc .trackmenu
declare mx&,my&
my&:=hiword(&ulparam)
mx&:=loword(&ulparam)
createmenu
appendmenu 100,ll
Trackmenu_bymousepos
endproc
Proc Trackmenu_bymousepos
Declare Gmp#,Dx&,Dy&
Dim Gmp#,8
External(user32,ClientToScreen,%Hwnd,Gmp#)
Dx&=Long(Gmp#,0)
Dy&=Long(Gmp#,4)
External(user32,GetCursorPos,Gmp#)
Trackmenu (Long(Gmp#,0)-Dx&),(Long(Gmp#,4)-Dy&)
Dispose Gmp#
../../function-references/xprofan/endproc/'>Endproc
|
|
|
| |
|
|
|
Jac de Lad | Das Listview liegt auf dem %HWnd. Ich schaus mir heute abend mal an! |
|
|
| 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 | 15.09.2006 ▲ |
|
|
|
|
Jac de Lad | Also dein Beispiel klappt, aber bei mir im Digicam-Assistenten klappts komischerweise nicht. Ich brauch sicher noch Weile bis ich herausgefunden habe, warum...
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 | 15.09.2006 ▲ |
|
|
|
|
| Hm ok ich bin gespannt zu wissen woran es lag! |
|
|
| |
|
|