Dockingmöglichkeit per MoveWindow. Brauche Hilfe.



  • Hallo. Folgendermaßen lasse ich mein Window an die linke Seite des Desktops
    docken:

    void CtestDlg::OnMove(int x, int y) 
    {
    	CDialog::OnMove(x, y);
    
    	CRect myRect, desktop;
    	GetDesktopWindow()->GetWindowRect(&desktop);
    	GetWindowRect(&myRect);
    
    	if ((myRect.left > desktop.left-20) & (myRect.left < desktop.left+20))
    	{
    		MoveWindow(desktop.left, myRect.top, myRect.Width(), myRect.Height());
    	}	
    }
    

    Soweit, sogut. Klappt auch.
    Das Problem ist, wenn mein Window (rect.left) innerhalb der -20 bis +20 Pixelgrenze ist, wird es jedesmal an die Position 0 gesetzt. Das Bewirkt logischerweise ein flackern. Wie kann ich das verhindern. Macht es überhaupt Sinn mit MoveWindow zu arbeiten ?


Anmelden zum Antworten