| |
|
|
Jörg Sellmeyer | Wie kann ich einen Klick mit der rechten (sekundären) Maustaste auf ein Listview auswerten? (Ohne die berühmte Dll eines begnadeten Programmieres! ) Und da ich grad dabei bin. Ich vermute mal, daß das Editieren von Items in Listviews ein Feature besagter Dll ist und Windows eigentlich nur die erste Spalte dafür vorgesehen hat, oder? Hiermit funktioniert es nämlich nur mit der ersten Spalte: SendMessage(hLV&,$1017,0,0)
Dafür muß als erstes die das Listview noch scharfgeschaltet werden: SetStyle hLV&,GetStyle(hLV&) | $200 Wer weiß Rat?
Saluto Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.09.2006 ▲ |
|
|
|
|
Frank Abbing | Hi.
Wie kann ich einen Klick mit der rechten (sekundären) Maustaste auf ein Listview auswerten?
WM_NOTIFY->NM_RCLICK
Und da ich grad dabei bin. Ich vermute mal, daß das Editieren von Items in Listviews ein Feature besagter Dll ist und Windows eigentlich nur die erste Spalte dafür vorgesehen hat, oder?
Richtig. Natürlich kannst du jederzeit selber Editcontrols auf das Listview setzen und den User darin editieren lassen. Genauso macht es die Listview.dll ja auch. |
|
|
| |
|
|
|
Jac de Lad | Für den Rechtsklick kannste auch die gute EasyVENT.dll nehmen, die hat auch noch andere Vorteile! Die nehme ich auch im Digicam-Assistenten, aber per andere Klicks und so.
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 | 02.09.2006 ▲ |
|
|
|
|
Jörg Sellmeyer | Ist das denn sooo komplieziert? Eigentlich müßte doch in %notifycode ein unterschiedlicher Wert stehen, je nachdem mit welcher Maustaste man klickt. Kommt aber leider immer das gleiche Ergebnis.
Bei ner Listbox passiert bei Rechtsklick gar nichts. Dafür gibt Clicked beim Listview gar kein Ergebnis. Mit Getfocus ist der Wert immer -121
Hier kann man mal unterschiedliche Verhaltensweisen sehen: KompilierenMarkierenSeparierenCls
Declare lv&,lb&
lv&=Create(Gridbox,%hwnd,Test;0;100;Test1;0;100,0,210,10,210,400)
lb&=Create(Listbox,%hwnd,0,430,10,150,400)
WhileLoop 10
AddString(lv&,test)
AddString(lb&,test)
Wend
Declare ende%
WhileNot ende%
WaitInput
IF Equ(%key,2)
Let ende%=1
ElseIf GetFocus(lv&)
print %notifycode
ElseIf GetFocus(lb&)
print %notifycode
Alternativ mal damit:
ElseIf Clicked(lv&)
print %notifycode
ElseIf Clicked(lb&)
print %notifycode
EndIf
Wend
Ist das nun Bug oder Feature? Wann kommt Roland nochmal wieder?? |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.09.2006 ▲ |
|
|
|
|
Jac de Lad | Hm...da kann ich dir jedenfalls nicht helfen...vielleicht Fank.
PS: Mit der EasyVENT klappts wunderbar!
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 | 02.09.2006 ▲ |
|
|
|
|
Frank Abbing | Wenn eine WM_NOTIFY Message empfangen wird, steht in LPARAM der Pointer auf eine Struktur (NMHDR). Der dritte Wert (code) in dieser Struktur ist der Wert des Ereignisses, welches stattgefunden hat:
NM_CLICKThe user has clicked the left mouse button within the control. NM_DBLCLKThe user has double-clicked the left mouse button within the control. NM_KILLFOCUSThe control has lost the input focus. NM_OUTOFMEMORYThe control could not complete an operation because there was not enough memory available. NM_RCLICKThe user has clicked the right mouse button within the control. NM_RDBLCLKThe user has double-clicked the right mouse button within the control. NM_RETURNThe control has the input focus, and the user has pressed the ENTER key. NM_SETFOCUSThe control has received the input focus.
Hollfe, das hilft dir weiter. |
|
|
| |
|
|
|
Frank Abbing | Ich nochmal.
Habs gerade mal ausprobiert. Folgender Code sollte funktionieren, macht es aber nicht:
Case ((%wmNotify) and (&NotifyWnd=listview&)): Print %NotifyCode
Ergebniss ist immer -121. Meiner Meinung nach ein eindeutiger Profan-Bug! Ich selber löse diese Dinge eh immer im Subclassing und mit Assemblercode. Darum fällt mir sowas meisstens nicht auf. |
|
|
| |
|
|
|
Jörg Sellmeyer |
Ergebniss ist immer -121. Meiner Meinung nach ein eindeutiger Profan-Bug!
Genau! Rooooolaaaand! Hhhm! Genau wie bei der Polizei: Wenn man sie braucht, ist sie nicht da. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.09.2006 ▲ |
|
|
|
|
Jörg Sellmeyer | Irgendwie blick ichs nicht. Nach meinem Verständnis müßte es doch so funktionieren, oder? KompilierenMarkierenSeparieren $H Structs.ph
Struct Notify = ~NMHDR
Declare NM#
Dim NM#,Notify
Cls
Declare Lv&,Lb&
Lv&=Create(Gridbox,%Hwnd,Test;0;100;Test1;0;100,0,210,10,210,400)
Lb&=Create(Listbox,%Hwnd,0,430,10,150,400)
Whileloop 10
Addstring(Lv&,test)
Addstring(Lb&,test)
Wend
Declare Ende%
Whilenot Ende%
Waitinput
If %wmnotify
NM# = &LPARAM
With NM#
Print .hwndFrom&,.idFrom&,.code&,&LPARAM,NM#
EndWith
EndIf
Locate 1,1
If Equ(%Key,2)
Let Ende%=1
Endif
Wend
Dispose NM#
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.09.2006 ▲ |
|
|
|
|
RGH | Jörg Sellmeyer
Ist das denn sooo komplieziert? Eigentlich müßte doch in %notifycode ein unterschiedlicher Wert stehen, je nachdem mit welcher Maustaste man klickt. Kommt aber leider immer das gleiche Ergebnis.
Also bei Deinem (unveränderten) Beispiel gibt es in der Gridbox bei der einen Maustaste -2 und bei der anderen -5. Wo genau ist das Problem?
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 03.09.2006 ▲ |
|
|
|
|
Jörg Sellmeyer | Sollte ich einen RC verpaßt haben oder hast Du eine andere Version??? Erster Klick mit Links, zweiter mit Rechts. (Listview)
Jetzt hab ich die Listbox vergessen. Da kommt mit Rechts garnichts an. Mit Links beim ersten Klicken -150 und dann -8. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.09.2006 ▲ |
|
|
|
|
RGH | Ciao, Du hast die aktuelle Version, aber ich habe es unter Windows 2000 getestet und nicht unter XP. Und bei den Notify-Geschichten hört da offensichtlich Microsofts Kompatibilität auf. Ich werde mir das in den nächsten Tagen mal näher ansehen. (Vorerst könntest Du es mal mit Messagemode 2 probieren.)
Saluto Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 03.09.2006 ▲ |
|
|
|