CEdit dynamisch neu anordnen



  • Hallo,
    ich möchte ein CEdit-Control ganz rechts im Dialog zur
    Laufzeit des Dialoges anordnen. Hierzu muß ich erstmal
    die Breite des Dialoges abfragen (Wie???)
    und dann die Position des Controls entsprechen setzen (Wie???)

    Wer kann mir sagen, wie das geht?

    Danke und Gruß
    Oliver



  • Wie bereits im andern Thread geschrieben:
    GetClientRect und MoveWindow

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-120704.html



  • Hier mal mein Code mit dem ich einige Elemente in einem CFormView an die Fenstergröße anpasse:

    void CProBetaViewSMD::OnSize(UINT nType, int cx, int cy) 
    {
    	CRecordView::OnSize(nType, cx, cy);
    
    	if (IsWindowVisible())
    	{
    		WINDOWPLACEMENT pl;
    		WINDOWPLACEMENT setpl;
    		GetWindowPlacement(&pl);
    
    		//Programm Liste
    		m_ctrlPrograms.GetWindowPlacement(&setpl);
    		setpl.rcNormalPosition.bottom = pl.rcNormalPosition.bottom - 78;
    		m_ctrlPrograms.SetWindowPlacement(&setpl);
    
    		// Baugruppen Liste
    		m_ctrlBaugruppen.GetWindowPlacement(&setpl);
    		setpl.rcNormalPosition.right = pl.rcNormalPosition.right - 13;
    		setpl.rcNormalPosition.bottom = pl.rcNormalPosition.bottom - 78;
    		m_ctrlBaugruppen.SetWindowPlacement(&setpl);
    
    		// Baugruppe hinzufügen Button
    		m_btnAdd.GetWindowPlacement(&setpl);
    		setpl.rcNormalPosition.top = pl.rcNormalPosition.bottom -70;
    		setpl.rcNormalPosition.bottom = pl.rcNormalPosition.bottom - 47;
    		setpl.rcNormalPosition.left = pl.rcNormalPosition.right - 215;
    		setpl.rcNormalPosition.right = pl.rcNormalPosition.right - 103;
    		m_btnAdd.SetWindowPlacement(&setpl);
    
    		// Import Button
    		m_btnImport.GetWindowPlacement(&setpl);
    		setpl.rcNormalPosition.top = pl.rcNormalPosition.bottom -70;
    		setpl.rcNormalPosition.bottom = pl.rcNormalPosition.bottom - 47;
    		setpl.rcNormalPosition.left = pl.rcNormalPosition.right - 96;
    		setpl.rcNormalPosition.right = pl.rcNormalPosition.right - 21;
    		m_btnImport.SetWindowPlacement(&setpl);
    
    		// Static Feld
    		m_ctrlCount.GetWindowPlacement(&setpl);
    		setpl.rcNormalPosition.top = pl.rcNormalPosition.bottom-70;
    		setpl.rcNormalPosition.bottom = pl.rcNormalPosition.bottom;
    		m_ctrlCount.SetWindowPlacement(&setpl);
    	}
    }
    

    Das mit MoveWindow hat bei mir nur dürftig geklappt - mag aber auch sein das ich nur etwas falsch gemacht hab.



  • Taelan schrieb:

    Das mit MoveWindow hat bei mir nur dürftig geklappt - mag aber auch sein das ich nur etwas falsch gemacht hab.

    Bei mir klappt MoveWindow in FormViews ganz gut. 🙂


Anmelden zum Antworten