Bitte um Ratschlag für Handhabung (CListCtrl)
-
Hallo!
Nachdem mein editierbares Listcontrol jetzt ziemlich zuverlässig das tut, was ich will, hat es nur noch ein Manko:
Man sollte per Tastatur in den Editmodus kommen.Bisher muss man die zu editierende Zelle mit der Maus anklicken, das ist doof für unsere tastaturgewohnten User.
Wie würdet ihr das lösen?
Es geht gar nicht um den Quellcode, da habe ich schon eine Idee, die funktionieren sollte.
Nein, es geht darum, welche Taste man dafür nimmt. Ich tendiere zu F2 wie in Excel, wäre das halbswegs im Standard?Danke für Eure Ideen.
Wer es mal testen mag: www.larsaf-iii.de/forum/cpp/ListCtrl.rar
Es ist aber noch nicht fertig! Falls das jemand nutzen will, sollte er Bescheid geben, damit ich die wirklich fertige Version hochlade.
Über Betatester und Meldungen würde ich mich aber auch freuen.
-
enter
-
Leider gibt er mir diesen Fehler:
h:\C++ projects\ListCtrl\InPlaceEdit.cpp(47): error C2440: 'static_cast' : cannot convert from 'void (__thiscall CInPlaceEdit::* )(WPARAM,LPARAM)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'
-
Der kommt bei mir nicht. Welches VC hast du?
-
VC 2003.NET
-
Der meckert bei:
BEGIN_MESSAGE_MAP(CInPlaceEdit, CEdit) //{{AFX_MSG_MAP(CInPlaceEdit) ON_WM_KILLFOCUS() ON_WM_CHAR() ON_MESSAGE(WM_PASTE, OnPaste) // hier meckert der ON_WM_CREATE() //}}AFX_MSG_MAP END_MESSAGE_MAP()
-
Mach mal aus
void OnPaste...
ein
LRESULT OnPaste...
Einfach immer
return 0;
wo er meckert.
Das ist wohl eine von den Stellen, wo sich VC6 und VC2003 unterscheiden. Ich hatte es noch nicht mit dem neuen getestet.
...ich hasse solche Fehler...
-
Ok, funktioniert jetzt.
Zu deiner Frage:
Space oder Enter scheinen auch ok zu sein.
Mit Excel kenne ich mich nicht so aus. Wenn es da aber mit F2 gelöst ist, wäte das aber auch ne Überlegung wert, da der Wiedererkennungseffekt gross ist und User dann das Gefühl bekommen, sich da auszukennen. Hoffe du weisst, was ich meine.