Welche Funktion in einem CListCtrl
-
Die Taste musst du nicht in der Resource angeben.
Die VK_irgendwas kannst du auch so benutzen. VK_ENTER (oder VK_RETURN???) in deinem Fall.
Hier ist ein Ausschnitt aus meiner einen keydownfunktion, da siehst du, wie man an die Taste kommt:
void CArtikelView::OnKeydownLscArtikel(NMHDR* pNMHDR, LRESULT* pResult) { LV_KEYDOWN* pLVKeyDown = (LV_KEYDOWN*)pNMHDR; // Index der markierten Zeile holen int n = m_lscArtikel.GetSelectionMark(); // Ist überhaupt etwas ausgewählt? if (n > -1) { // Index anpassen if ((pLVKeyDown->wVKey == VK_UP) && (n > 0)) { // Pfeil-rauf also einen Index runter n--; } //...
-
Vielen Dank,
jetzt habe ich nur das Problem, dass er in diese Funktion garnicht springt ??
Woran kann das liegen ??
Gruß
andy_mann
-
Hast du sie per Assistent eingebunden? Wie sieht deinen MessageMap aus? Wie sieht die vom Control selbst aus? (Vielleicht "verschluckt" es die Nachricht einfach.)
-
Such mal nach OnEndLabelEdit bzw. (On)BeginLabelEdit.
Devil
-
Ja ich habe es über den asistemten gemacht,
er findet keines der gesuchten verweise, nur OnEndLabelEdit , das ist aber in einer Funktion einer anderen Klasse.
Gruß
andy_mann
-
-
Zeig bitte mal deinen Messagemap - ohne kann ich dir nicht helfen, nur im Nebel stochern...
-
Hallo,
.h public: .. . . afx_msg void OnLvnKeydownListVariableBenutzer(NMHDR *pNMHDR, LRESULT *pResult); .cpp BEGIN_MESSAGE_MAP(CAdminSeite1, CDialog) .. . . ON_NOTIFY(LVN_KEYDOWN, IDC_LIST_VARIABLE_BENUTZER, OnLvnKeydownListVariableBenutzer) END_MESSAGE_MAP()
Danke
andy_mann
-
Und in der Listcontrol Klasse? (Wegen Verschlucken)
-
.h public: .. . CEditList m_ListVariablen; // ist von CListCtrl abgeleitet .cpp .. . DDX_Control(pDX, IDC_LIST_VARIABLE_BENUTZER, m_ListVariablen);
Gruß
andy_mann
-
Nein, ich meine in der Klasse CEditList. Die kann ja auch eine Messagemap haben...
-
Ups, oh ja....
BEGIN_MESSAGE_MAP(CEditList, CListCtrl) //{{AFX_MSG_MAP(CEditList) ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT, OnEndlabeledit) // ON_NOTIFY_REFLECT(NM_CLICK, OnClick) ON_NOTIFY_REFLECT(LVN_KEYDOWN, OnKeydown) ON_WM_CREATE() //}}AFX_MSG_MAP ON_NOTIFY_REFLECT(NM_DBLCLK, OnNMDblclk) END_MESSAGE_MAP()
daran wird es wohl ligen....
Aber was muß ich jetzt tun ??
Gruß
andy_mann
-
Ich hab leider keine Ahnung, was dieses ON_NOTIFY_REFLECT ist - aber wenn ich die MSDN richtig verstehe, dann ist es der Grund.
If, in your parent window class, you supply a handler for a specific WM_NOTIFY message or a range of WM_NOTIFY messages, your handler will be called only if the child control sending those messages does not have a reflected message handler through ON_NOTIFY_REFLECT().
Hat das Teil auch eine Funktion dazu?
Vielleicht kannst du da drin ja deine eigene Nachricht an pParent abschicken. Dann brauchst du nur noch reagieren. Also, wenn da was passendes ist, zeig doch mal...