Ein Child-Fenster erstellen ???



  • Ich hab folgendes Problem:
    Ich möchte in meinem Programm zuerst das Hautpfenster(CMainWnd von CFrameWnd)
    erstellen und dann ein ChildFenster m_wndFolder (CFolderWnd von CWnd) erstellen. Leider ist das Fenster deaktiviert und die Ressourece wird auch nicht geladen... An was liegts???
    Hier der Code:

    //In der Startfunktion:
    static const UINT Children_Styles=WS_CHILD | WS_OVERLAPPEDWINDOW | WS_VISIBLE;
    
    	m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);//Icon
    
    	CString ClassName=AfxRegisterWndClass(NULL,NULL,CreateSolidBrush(RGB(144,144,144)),m_hIcon);//FensterKlasse
    	BOOL erg=Create(ClassName,"FTP");
    	//ClientRect zum Berechnen:
    	CRect rCR;
    	GetClientRect(rCR);
    		//Weitere Aufgaben:
    	//-Ordner und Dateienfenster:
    		CRect rFolder;
    		rFolder.CopyRect(rCR);
    		//rFolder.bottom-=rCR.Width()/3;
    		rFolder.SetRect(0,0,100,100);
    		m_wndFolder.Create(NULL,"Dateien",Children_Styles,rFolder,this,IDD_FOLDER);	
    		//m_wndFolder.CreateEx(WS_EX_MDICHILD,NULL,"dd",Children_Styles,rFolder,this,IDD_FOLDER);
    


  • OK, jetzt hab ichs mal mit der Klasse CMDIFrameWnd probiert.
    Jetzt kommt aber bei folgender Stelle ein "Assertion failed":

    CMainWnd* wnd= new CMainWnd;
    wnd->Create(NULL,"xy",WS_OVERLAPPEDWINDOW,CMDIFrameWnd::rectDefault,NULL);
    

    Wieso?????



  • Ok, jetzt funktionierts einigermaßen, nur die Dialogressource lädt er nicht...
    Hab folgenden Code:(In InitInstance)

    CMainWnd* wnd= new CMainWnd;//Von CMDIFrameWnd
    	CRect r;
    	r.SetRect(10,10,100,100);
    
    	wnd->Create(NULL,"hallo",WS_OVERLAPPEDWINDOW,r);
    	wnd->ShowWindow(SW_SHOW);
    
    	m_pMainWnd = wnd;
    
    	wnd->CreateNewChild(RUNTIME_CLASS,FolderWnd),IDD_FOLDER);
    //Hier Ressource laden, macht er aber nicht, nur ein weißes Fenster erscheint...
    

Anmelden zum Antworten