Fenster verschieben



  • Hallo allerseits,
    normalerweise verschiebt der User ein Fenster mit gedrückter linker Maustaste in der Titelleiste. Dieses Verhalten möchte ich auf das gesammte Fenster ausdehnen (ausgenommen darauf befindlichen Controls).Habe bisher folgendes:

    void CMovingWinDlg::OnLButtonDown( UINT nFlags, CPoint point ){
    	m_bLButtonDown = true;
    	m_cpKlick = point;
    }
    
    void CMovingWinDlg::OnLButtonUp(UINT nFlags, CPoint point){
    	m_bLButtonDown = false;
    }
    
    void CMovingWinDlg::OnMouseMove(UINT nFlags, CPoint point){
    	if (m_bLButtonDown){
    		CRect r;
    		GetWindowRect(r);
    		CPoint diff = point-m_cpKlick;
    		MoveWindow(r.left+diff.x,r.top+diff.y,r.Width(),r.Height());
    		m_cpKlick = point;
    	}
    }
    

    Problem ist hierbei: Es ruckelt und hakt und hat irgendwie überhaupt keine Ähnlichkeit mit der Standard-Methode. Was kann ich tun, damit das Ganze fliessender und ruckelfrei funktioniert ?


  • Mod

    Es geht viel einfacher.
    Baue einen WM_NCHITTEST Handler ein und returniere an der entsprechenden Cursorposition HTCAPTION!



  • Super, funktioniert, vielen Dank!!!!


Anmelden zum Antworten