WM_CREATE wird nicht versendet?
-
Anstatt verschiedene Standardaktionen für eine List-View (Einfügen von Spalten und Elementen) in OnInitDialog() des sie enthaltenen Dialogs zu machen, würde ich das gerne irgendwie in die Klassen, die die List-Views verwalten, verschieben. Irgendwelche Änderungen, bevor das Fenster angezeigt wird, macht man ja, indem man WM_CREATE behandelt. Also habe ich für meine List-View Control diese Nachricht auf eine Methode gemapt, in der jetzt Testweise erstmal eine MessageBox ausgegeben werden soll. Da passiert aber nichts.
BEGIN_MESSAGE_MAP(CEntityList, CListCtrl) ON_WM_CREATE() END_MESSAGE_MAP() int CEntityList::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CListCtrl::OnCreate(lpCreateStruct) == -1) return -1; ::MessageBox(NULL, "List created!", "Debug", MB_OK); return 0; }Gibt's da in MFC eine andere Vorgehensweise, oder wie läuft das? Zur Info: Meine List-Views sind im Dialog-Editor als Resource fest erstellt und werden dann in der Dialog-Klasse mit einer Member-Variable vom Typ CEntitiyList verknüpft.
Also entweder wird WM_CREATE nicht versendet, oder die Methode wird sonst irgendwie nicht richtig erreicht.
-
Bei Dialogen bekommen die einzelnen Dialogelemente keine WM_CREATE zugeschickt. Du müsstest in diesem Fall CEntityList::PreSubclassWindow verwenden.