tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
304
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Cappaja Cappaja ist offline Mitglied Silber
    Registriert seit
    May 2009
    Ort
    Konstanz
    Beiträge
    85
    hallo,

    ich habe ein CEdit Feld mit einem CSpinCtrl Element verbunden um ganzzahlige Werte inkrementieren bzw. dekrementieren zu können. Ich möchte jetzt aber das 12 mögliche Zahlenwerte nach folgendem Muster zur Verfügung stehen:
    Code :
    1
    2
    3
    4
    
    double GainTab[] = { 0.01,  0.02,  0.05,
                            0.1 ,  0.2 ,  0.5 ,
                                               1  ,  2   ,  5   ,
                                            10   , 20   , 50  };

    Ich habe hierfür die Methode Set bzw. GetAccel( int nAccel, UDACCEL* pAccel ) gefunden. Aus der MSDN werde ich hierbei nicht wirklich schlau nAccel stellt angeblich die Anzahl der UDACCEL structs dar. ich habe mir das struct angesehen und frage mich was ich da mit der zeit anfangen soll.

    kann mir jemand sagen wie ich meine vorliegende Tabelle an ein CSpinCtrlButton übergeben kann, sodass nur diese Werte zur Auswahl stehen?

    Mein bisheriger Code für diese Funktion:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    void CDisplayControl::OnChangeScale() 
    {
        double GainTab[] = { 0.01,  0.02,  0.05,
                             0.1 ,  0.2 ,  0.5 ,
                             1   ,  2   ,  5   ,
                            10   , 20   , 50  };
     
        int NewValue = ((CSpinButtonCtrl*)GetDlgItem(IDC_SPIN_SCALE))->GetPos();
     
        if(NewValue < 0)
        {
            NewValue = 0;
        }
        if(NewValue > 11)
        {
            NewValue = 11;
        }
     
           // Hier sollte das GainTab Array auf das Kontrollelement übergeben werden.
     
        ((CWiwoDlg*)AfxGetMainWnd())->pDP.d_fac = GainTab[NewValue];
    }

    wenn ich es über die Membervariable vom CSpinCtrlButton versuche steigt er mir bei SetWindowText() aus
    Code :
    1
    2
    3
    4
    
    double n = GainTab[NewValue];
    CString s;
    s.Format("%.2lf", n);
    m_ctrlScale.SetWindowText(s);
    Geändert von Cappaja (28.07.09 um 16:12 Uhr)
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Hallo,

    Wenn du nur diese begrenzte Anzahl von Werten hast, die sich nicht fortlaufend inkrementieren/dekrementieren lassen, würde ich statt des SpinButtonControl lieber eine ComboBox verwenden.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    Cappaja Cappaja ist offline Mitglied Silber
    Registriert seit
    May 2009
    Ort
    Konstanz
    Beiträge
    85
    hi MCoder,

    eine Combobox wäre mit AddString() sicher einfacher zu handhaben, jedoch ist ein drehfeld an dieser stelle anwender freundlicher, da es sich bei den um eine zehnerpotenz höheren werten um skalierungsgrößen handelt, so kann der anwender durch mehrmaliges inkrementieren schneller zu seiner gewünschten ansicht des grpahen gelangen. bei einer combobox müsste ich jedes mal den pfeil anklicken und dann eine auswahl treffen, das ist bei mehrmaligem "probieren" etwas lästig.
    vielleicht geht es ja doch irgendwie über die drehfelder...
     

  4. #4
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Ich denke nicht, dass sich das mit dem CSpinButtonCtrl realisieren lässt. Evt. wäre eine eigene Lösung mit zwei Buttons und einem Textfeld einfacher zu bewerkstelligen.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  5. #5
    Cappaja Cappaja ist offline Mitglied Silber
    Registriert seit
    May 2009
    Ort
    Konstanz
    Beiträge
    85
    dann werde ich es wohl so machen müssen, danke.

    mfg Cappaja
    Geändert von Cappaja (30.07.09 um 14:01 Uhr)
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 25.04.10, 13:11
  2. mograph - jedem klon eine eigene ID zuweisen?
    Von kharn im Forum Cinema 4D
    Antworten: 0
    Letzter Beitrag: 16.03.09, 20:53
  3. Werte zuweisen
    Von Sven4972 im Forum PHP
    Antworten: 8
    Letzter Beitrag: 31.01.09, 13:30