Kontextmenübefehl wird nicht ausgeführt, wieso?
-
mit den wizzards arbeite ich eigentlich nie
von hand ist es meistens eh schneller als vom code-generator von MS.das einbinden ist eigentlich kein problem:
// *.h afx_msg void OnLvnBeginlabeledit(NMHDR *pNMHDR, LRESULT *pResult);BEGIN_MESSAGE_MAP(CDeinListCtrl, CListCtrl) ON_NOTIFY_REFLECT(LVN_BEGINLABELEDIT, OnLvnBeginlabeledit) END_MESSAGE_MAP() void CDeinListCtrl::OnLvnBeginlabeledit(NMHDR *pNMHDR, LRESULT *pResult) { NMLVDISPINFO *pDispInfo = reinterpret_cast<NMLVDISPINFO*>(pNMHDR); // ... *pResult = 0; }mehr habe ich zumindest nicht gemacht

EDIT:
Sorry, doppelpost
-
Okay, das habe ich mittlerweile hinbekommen (mit Wizard, ich habe mich sehr dran gewöhnt) - hatte da nen Brett vorm Kopf.
Hast du noch eine Idee zu meiner nachgeschobenen Frage?
-
ne sorry. ich muss auch zugeben das ich nichtmal weis wozu OnUpdate...() gut ist und wie es aufgerufen wird

was macht denn die funktion und was willst du damit erreichen ?
-
Das ist die Funktion, in der ich einen Menüpunkt ausgrauen kann, falls er nicht aufgerufen werden soll.
Im konkreten Fall sieht das so aus:void CLagerView::OnUpdateBearbeitenBerechnen(CCmdUI* pCmdUI) { pCmdUI->Enable((!m_fBerechnet) && (IstZeileMarkiert())); }Der Menüpunkt darf nur enabled sein, wenn eine Zeile markiert ist und diese noch nicht berechnet wurde.
-
du könntest diesen schritt ja umgehen indem du direkt vor 'TrackPopupMenu()' die entsprechenden menüeinträge deaktivierst

-
Hmm, das kann ich Montag mal versuchen. Danke.

-
bei mir funktioniert es so wunderbar, dann sicherlich auch bei dir

finde das so aber auch sauberer programmiert
*nicht klugscheissen wollen* 
-
Red Skall schrieb:
finde das so aber auch sauberer programmiert
*nicht klugscheissen wollen* 
Sauberer als was?
Als mit PreTranslateMessage? Auf jeden Fall, das war ja auch nur eine vorübergehende Lösung, weil ich so gleich getestet hatte, ob die Nachricht überhaupt funktioniert.
-
nene, sauber als OnUpdate...() meine ich. denn du rufst das menü auf und deaktivierst in dieser funktion menüeinträge.
besser ist finde ich das menu zu erzeugen, dann alles deaktivieren was man deaktiviert haben möchte und es dann anzuzeigen.
ist geschmackssache würde ich sagen

-
Naja, das OnUpdate... ist der normale Weg in einer SDI für das Hauptmenü, die Toolbar(s) und funktionierte bisher auch für die Kontextmenüs (wahrscheinlich, weil es das normale Bearbeiten-Menü war).
Ist also eigentlich auch ne saubere Lösung, nur wie es scheint an dieser Stelle falsch.

-
Red Skall schrieb:
du könntest diesen schritt ja umgehen indem du direkt vor 'TrackPopupMenu()' die entsprechenden menüeinträge deaktivierst

Es hat leider nicht geklappt, da das Listcontrol nicht genug über den View weiß.
Ich regele das jetzt mit Prüfungen in der Bearbeitungsfunktion und passenden Meldungen an den Benutzer.
Das sollte auch gehen.