Sorry noch eine Frage: Button(Variable)? für Minesweeper



  • Wie kann ich einen Button mit z.B ButtonX ansprechen.
    Für minesweeper habe ich 200 Buttons und muss sie mit Variablennamen ansprechen können.

    Wie programmiert man das? Möglichst einfach.



  • entweder per
    static_cast<CButton *>(this->GetDlgItem(IDC_BUTTON1))->XX

    oder du definierst eine member variable per DDX

    DDX_Control(pDX, IDC_IDC_, m_Button1);

    m_Button1.XX



  • Hm, für 200 Buttons?
    Ich glaube Du möchtest die Buttons dynamisch erzeugen. Dazu ein Array mit ButtonPointern erstellen, mit new die Instanzen erzeugen und Create aufrufen (nicht vergessen: delete am Ende). Auf den Ressourceneditor musst du in so einem Fall verzichten.



  • Wenn ich ehrlich bin, hab ich die 200 Buttons jetzt schon 2-Mal einzeln erstellt^^

    ich probier mal die obere Variante



  • erstellen duerfte kein problem sein
    einfach
    CButton m_Buttons[20][10];
    und dann zwei schleifen die erstellen und an die position ruecken

    //pseudo
    int id = 1001;
    for(int i = 0; i < 20; ++i)
    {
        for(int j = 0; j < 10; ++j)
        {
            m_Button[i][j].Create(..., id);
            //pos um eine buttonlaenge + n bissl luft nach rechts
            ++id ;
        }
        // position um eine button hoehe + n bissl luft nach unten
        ++id ;
    }
    

    das waere dann die erstellung und postionierung,
    abfragen kannst du dan ueber die id, button 1 hat id 1001 usw

    ON_CONTROL_RANGE(BN_CLICKED, 1001, 1201, OnClickButton)
    bei "OnClickButton" kannst du dann
    CWnd *button = GetFocus(); // oder so aehnlich
    ermitteln welcher genau geklickt wurde



  • 😮 dass hört sich nach einer Erklärung an, die ich vielleicht auch verstehen kann. Ich werd mal tüfteln.... GANZ GROSSES *LOB*

    VIELEN DANK



  • ist nur nicht groessen dynamisch, falls du das brauchst solltest du diese dynamisch erstellen un in nem vector werfen, amcht das ganze aber n bissl komplizierter, vor allem die abfrage was geklickt wurde
    aber du kannst ja eine maximale groesse definieren und nur bei bedarf erstellen



  • Nein, es reicht statisch völlig aus.

    welche bibliothek ist das?

    #include <?????.h>



  • Hallo

    L4ngweiler schrieb:

    Nein, es reicht statisch völlig aus.

    welche bibliothek ist das?

    #include <?????.h>

    Was für eine Bibliothek meinst du?

    chrische



  • bibliothek ? fuer was ?
    // kannst mich auch in MSN added wenn du magst mr1evil@hotmail.com



  • sorry, dass ich euch mit meinen Anfängerfragen langweile, aber wie verdammt funktioniert das mir den Buttons. Ich bekomme immer Fehler mit der Deklaration.

    Also bitte bitte erklärt es mir wie einem Kleinkind.

    Ich habe testweise ein neues Windows-Forms-Projekt mit Visual Studio 2005 aufgemacht.

    Dann habe ich einen Button200 erstellt der bei dem Ereignis Click jetzt 200 Buttons von 0-199 erstellen soll.

    Es ist ja nicht so, dass ich nichts probieren würde 😞 es funkt aber nicht.



  • Hallo

    Zuerst solltest du mal lernen, wie man postet. Hilfreich ist immer eine genaue Fehlerbeschreibung und der dazugehörige Code. Hast du ein WinForm-Projekt geöffnet, wenn ja, dann ist das hier das falsche Forum, weil es hier um MFC geht.

    chrische


Anmelden zum Antworten