| |
|
|
- Seite 1 - |
|
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?
Gruß Jörg |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 02.09.2006 ▲ |
|
|
|
|
| |
|
- Seite 1 - |
|
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?
Gruß 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 | Hallo, 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.)
Gruß 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 ▲ |
|
|
|
| |
|
- Seite 2 - |
|
|
Jörg Sellmeyer | Na, wenigstens haben wir jetzt mal eine Ursache und einen Schuldigen (BG). Messagemode 2 nützt auch nichts. Immer -121, nur jetzt bei jeder Mausbewegung nach klick auf das LV.
Ach ja, und ich hoffe Du hattest einen schönen Urlaub!! Laß Dich jetzt nicht stressen, damit nicht die ganze Erholung gleich weg ist!!! |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.09.2006 ▲ |
|
|
|
|
Frank Abbing | Hi.
Ich selber konnte in der Beziehung keinerlei Veränderung zwischen Windows98 und XP feststellen. Klar kommen mehr Messages an, aber, die gleiche Variante (WM_NOTIFY->NM_RCLICK) im Subclassing abgefragt funktioniert bestens. Darum glaube ich nicht, dass hier ein Windowsbug vorliegt.
Hallo zurück, Roland!
P.S.: Zu diesem Thema habe ich einen schon recht alten Thread gefunden: [...] |
|
|
| |
|
|
|
Jörg Sellmeyer | Mit so nem doch recht wüsten Konstrukt geht es erst mal: KompilierenMarkierenSeparierenH Windows.ph
Struct CursorPos = X&,Y&
Declare CP#
Dim CP#,CursorPos
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&,Format$(Test 00,&Loop))
Addstring(Lb&,test)
Wend
Declare Ende%
Whilenot Ende%
If Getfocus(Lv&)
GetMessage
Else
Waitinput
EndIf
If Equ(%Key,2)
Let Ende%=1
ElseIf And(~Getasynckeystate(2),Getfocus(Lv&))
~GetCursorPos(CP#)
~ScreenToClient(%hwnd,CP#)
CreateMenu
AppendMenu 100,GetText$(LV&,GetCurSel(LV&),0)
AppendMenu 101,Test1
Separator
AppendMenu 200,Abbruch
TrackMenu CP#.X&,CP#.Y&
Endif
Wend
Dispose CP#
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.09.2006 ▲ |
|
|
|