Kontextmenü in CFileDialog abschalten
-
hi
wenn ich einen CFileDialog öffne und darin die rechte Maustaste drücke erscheint das Kontextmenü. Wie kann ich das verhindern?
habe schon die Funktionen
OnRButtonDown(...)
OnRButtonUp(...)
OnContextMenu(...)
versucht, aber leider ohne Erfolg.vielen Dank für Hilfe
vg
Angel
-
Welches Kontext Menü?
Du kannst mit Sicherheit das Listcontrol subclassen und dort WM_CONTEXTMENU abfangen.
-
wenn ichg den dialog aufmache und dort mit rechts auf ne datei klicke erscheint das menü mit datei kopieren,..., explorer öffnen, ... und so
das möchte ich aber verhindern.
ich habe die Windows-Nachricht WM_CONTEXTMENU abgefragt, jedoch geht er nie in diese Prozedur (OnContextMenu(...)) rein.
-
Wo hast Du die abgefragt? Im Dialog? Da ist es evtl. zu spät. Die Nachricht wird IMHO im ListCtrl abgehandelt.
-
jo, im Dialog.
ich habe eine klasse erstellt und diese von CFileDialog abgeleitet. Darin habe ich nun diese und andere Windows-Nachrichte (versucht) abzufangen.Wie kann ich die Nachrichten in einem bestimmten Element des Dialogs abfragen?
-
Eigene CListCtrl Implentierung erzeugen. GetDlgItem durchführen und dann einfach SubclassDlgItem...
Oder auch Naughter's CHookWnd verwenden, oder DiLascias CSubclassWnd...
-
hmm, das ist doch ertwas tiefere programmierung mit der ich bis jetzt noch net so viel gemacht habe.
Könntest du das bitte etwas genauer beschreiben?
Für das GetDlgItem und auch die SubclassDlgItem brauche ich anscheinend den Namen des Elements. Wie bekomme ich den raus?
-
Indem Du die ID ermittelst. Diese ist für diese Explorer Common Contrls konstant. Du kannst den Spy++ nutzen dazu.