x und y Position eines Controls ändern



  • Hallo,
    wie kann ich die x und y Position eines CEdit
    per Programmcode ändern ?

    Danke und Gruß,
    Oliver



  • GetClientRect()



  • Wie funktioniert das mit GetClientRect ?



  • so in etwa.. MSDN lesen hilft 😉

    int bottom, top, left, right;
    CButton button;
    CRect rect;
    
    button.GetClientRect(&rect);
    
    bottom = rect.bottom;
    top = rect.top;
    left = rect.left;
    right = rect.right;
    


  • lass dich nicht verarschen. nimm MoveWindow



  • Oder beides kombinieren 🙂

    Mit GetClientRect() bekomsmt du die Koordinaten eines Steuerelementes mit MoveWindow() kannst du sie dann setzen.



  • Noch ne Methode mit Windowplacements:

    WINDOWPLACEMENT pl;
    WINDOWPLACEMENT setpl;
    GetWindowPlacement(&pl);
    // Import Button
    // In diesem Fall wird das ganze noch an die aktuelle Fenstergröße angepasst
    // (wird unten rechts festgemacht sozusagen)
    
    //m_btnImport ist der Control auf einen Button
    m_btnImport.GetWindowPlacement(&setpl);
    
    // du kannst anstatt "pl.rcNormalPosition.bottom -70" auch einen absoluten wert // angeben
    
    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);
    


  • Das ganze nochmal in der einfachen Version:

    WINDOWPLACEMENT setpl;
    
    //m_btnImport ist der Control auf einen Button
    m_btnImport.GetWindowPlacement(&setpl);
    
    //Hier mit absoluten Werten
    
    setpl.rcNormalPosition.top = 0;
    setpl.rcNormalPosition.bottom = 25;
    setpl.rcNormalPosition.left = 0;
    setpl.rcNormalPosition.right = 100;
    m_btnImport.SetWindowPlacement(&setpl);
    

Anmelden zum Antworten