CPropertyPage stürzt bei Positionierung ab



  • hi,

    ich arbeite gerade an einem PropertyPage. Dieses PropertyPage besteht aus 2 Seiten, auf der 1. Seite wird nochmal ein 3 Seitiges PropertyPageobjekt angezeigt. Das Problem ist jetzt die Positionierung des 2. (3 Seitigen) PropertyPages.
    Normalerweise wird die Funktion OnPropertys() (die die Pages erzeugt) ja im OnInitDialog() aufgerufen. Bei mir springt der also vom OnInitDialog ins OnPropertys() der ersten Seite (2 Seitig). Dort erzeugt er aber automatisch das untere (3 Seitige Page) welches nun die Koordianten des 2 Seitigen Pages Braucht damit es auch wirklicn in der Mitte (und nicht oben links oder sonstwo) steht.

    Wie ihr sicher schon ahnt steckt hier das Problem... die OnInitDialog()-Funktion des 1. 2 Seitigen Pages ist noch nicht abgeschlossen, und somit hat das 2-Seitige Page auch noch keine Koordinaten für die Platzierung.

    Mein Chef meinte ich hab da irgendwas mit der Reihenfolge durcheinander gebracht. Aber den erzeugungscode hat der Assistent erstellt (und ich hab nur brav die OnPropertys()-Funktion da reingeschrieben wo's hingehört).

    Hattet ihr schonmal so ein ähnliches Problem? Kann mir jemand helfen?

    //vom Assistenten generierter Code
    	if (m_pPropFrame == NULL)
    	{
    		m_pPropFrame = new CR6S_WertungFrame;
    		CRect rect(0, 0, 0, 0);
    		CString strTitle;
    		VERIFY(strTitle.LoadString(IDS_PROPSHT_CAPTION8));
    
    		if (!m_pPropFrame->Create(NULL, strTitle,   //an dieser Stelle m_pPropFrame->Create() werden die unterseiten erzeugt
    			WS_POPUP , rect, this))         
    		{                                 
    			delete m_pPropFrame;
    			m_pPropFrame = NULL;
    			return;
    		}
    
    		GetWindowRect(&Rechteck);  //beim 1. Aufruf hat Rechteck noch die Koordinaten vom Dialogfenster 
    		LinkeEcke = Rechteck.TopLeft();
    		m_pPropFrame->SetWindowPos(&CWnd::wndTop, LinkeEcke.x+10, LinkeEcke.y+30, Rechteck.Width() , Rechteck.Height(), SWP_SHOWWINDOW); 
    	}
    

Log in to reply