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.


Anmelden zum Antworten