CFormView und Fenstergröße mal wieder...



  • Hi,
    ich habe eine SDI und das Fenster zeichnet die Elemente in der FormView entsprechend der Größe des Hauptfensters neu.
    Jedoch möchte ich nicht, dass die Ausgangsgröße unterschritten werden kann.
    Habe versucht, mir die Ausgangsfenstergröße zu speichern und bei Unterschreitung das Hauptfenster per MoveWindow wieder in die vorherige Position zu verschieben.
    Geht aber nicht.
    So sieht mein Code aus:

    void CWebInkView::OnSize(UINT nType, int cx, int cy) 
    {
        static bool bSelfAdvice = false;
        if (bSelfAdvice)
            return;
    
        ShowScrollBar(SB_BOTH, FALSE);
    
        if (IsWindowVisible())
        {
            if (m_MinRect.IsRectEmpty())
                ((CWebInkApp*)AfxGetApp())->m_pMainWnd->GetWindowRect(m_MinRect);
    
            SetRedraw(false);
            // Mindestgröße unterschritten?!?
            CRect r;
            ((CWebInkApp*)AfxGetApp())->m_pMainWnd->GetWindowRect(r);
            if (r.Width() < m_MinRect.Width())
            {
                cx = 0;
                r.right = r.left+m_MinRect.Width();
                bSelfAdvice = true;
                AfxGetApp()->m_pMainWnd->MoveWindow(r);
                bSelfAdvice = false;
            }
            if (r.Height() < m_MinRect.Height())
            {
                cy = 0;
                r.bottom = r.top+m_MinRect.Height();
                bSelfAdvice = true;
                AfxGetApp()->m_pMainWnd->MoveWindow(r);
                bSelfAdvice = false;
            }
            m_ctrlPos.MoveControls();
            ShowScrollBar(SB_BOTH, FALSE);
            SetRedraw(true);
            Invalidate();
        }
    }
    

    Weiss jemand Rat?

    Danke im voraus...



  • Schau Dir mal WM_GETMINMAXINFO an



  • Super danke!!!

    Timo


Anmelden zum Antworten