CButton übergeben



  • Erstmal Danke an jeden der sich meinem Problem widmet.

    Hallo ich habe eine SDI-Anwendung welche als Basisklasse die CFormView hat.

    Ich habe auf meiner Oberfläche ca. 40 Buttons.
    Jetzt benötige ich die Position dieser Buttons des öfteren in meinem Programm.

    Könnte mir vl. jemand einen Tip geben wie ich eine Fkt. erstelle, welcher ich als Parameter den Buttonname gebe und mir als Rückgabewert die x und y Position des Buttons liefert?

    Momentan mach ich es folgend:

    CRect CBtnRect1;
    CButton *pButton1=(CButton*)GetDlgItem(IDC_BUTTON1);
    pButton1->GetWindowRect(CBtnRect1);
    posB1=CBtnRect2.top;
    

    Nur dieser Code ist bei 40 Buttons, welche in den verschiedensten Klassen aufgerufen werden viel zu aufwendig.
    Vl. hat ja jemand eine einfachere Möglichkeit für mich!

    THX


  • Mod

    Sorge dafür dass die IDs con IDC_BUTTON_01 und IDC_BUTTON40 durchgängig und ohne Lücke sind, dann kannst Du eine schöne Schleife undeinen Array benutzen.



  • CPoint xxx::GetButtonPos(int id)
    {
     CRect rcBtn;
     CButton *pButton1=(CButton*)GetDlgItem( id );
     pButton1->GetWindowRect(rcBtn);
    
     return rcBtn.TopLeft();
    }
    
    CPoint ptBtn;
    ptBtn = GetButtonPos(IDC_BUTTON_01);
    xxx = ptBtn.x;
    yyy = ptBtn.y;
    


  • Vielen Dank; genau sowas wollte ich.


Log in to reply