Drehfeld funktioniert nicht



  • Hallo!
    Beim anklicken des Spinbuttons erscheint in der dazugehörigen Edit-Box immer 0.

    BOOL CBerechnung::OnInitDialog()
    {...
    CSpinButtonCtrl * pSpin = ( CSpinButtonCtrl * ) GetDlgItem(IDC_SPIN1 ) ; 
    pSpin -> SetRange ( 0 , 100 ) ;  pSpin -> SetPos ( 33 ) ; 
    ...
    }
    
    void CBerechnung::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 
    {
    if ( nSBCode == SB_ENDSCROLL ) 
        { return ;   
        }
    
        if ( pScrollBar -> GetDlgCtrlID() == IDC_SPIN1 )
        {   m_iBPA[0] = nPos ; 
            m_strBPA[0].Format ("%d" , m_iBPA[0]) ; 
            SetDlgItemText ( IDC_PA1 , m_strBPA[0] ) ; 
        }
    
    }
    

    Woran liegts?
    Danke, NC

    [ Dieser Beitrag wurde am 30.08.2002 um 15:15 Uhr von NC editiert. ]



  • Hi,

    hast Du es mal debuggt?

    d.h. nen Haltepunkt drauf und nachsehen was drinsteht?

    Hab bei mir etwas ähnliches und wenn ich nPos verwende, hab ich den gleichen effekt. verwende mal net nPos (ich frags aus der Variablen ab..)

    Hoffe mal es funzt 😉

    [ Dieser Beitrag wurde am 30.08.2002 um 16:00 Uhr von Der_Digge editiert. ]



  • nPos hat den Wert 0; (war ja irgendwie klar..)

    Aus welcher Variablen abfragen? aus der dazugehörigen Member-Variablen? Hab ich grad probiert, hat net funktioniert.
    Wie machst Du das genau? 😕

    Gruß, NC
    (Danke schonmal, werd jetzt mal abschalten.. 🙂 )



  • Hallo!
    kann mir jemand noch einen Tip zu o.g. Problem geben?
    Danke, NC



  • Ist das so schwer?

    if( pScrollBar->GetDlgCtrlID() == IDC_SPIN1)
    {
       m_iBPA[0] = ((CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1))->GetPos();
       m_strBPA[0].Format ("%d" , m_iBPA[0]) ; 
       SetDlgItemText ( IDC_PA1 , m_strBPA[0] ) ; 
    }
    


  • Manchmal schon 😉



  • Vielleicht stell ich mich ja saublöd an, aber es funzt nicht. Es erscheint immer noch die 0 !!! ???
    Dieser Spin-Button macht mich Wahnsinnig langsam.

    Weitere Vorschläge?



  • Ich hab bei den Dingern immer die "AutoBuddy" Eigenschaft gesetzt. Dann muss man noch pSpin->SetBuddy( pEdit ); ( so oder ähnlich ) aufrufen und schon gehts.



  • Dir fehlt da abschließend etwas

    als letzte Zeile in
    void CBerechnung::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)

    .
    .
    .
    pScrollBar->GetDlgCtrlID();
    }

    Vergleicht die Werte da es ein Pointer ist und zeigt diese dann an

    Vossy

    Wenn das nicht geht sage bescheid dann poste ich dir einen Ferigen funktionierenden Code

    Vossy



  • Oh Mann bin ich doof.
    Hatte (bei der Erstellung des Dialogs vor langer Zeit...) bei den Steuerelementen die vertikale Bildaufleiste eingefügt (die optisch dem Spin-Button gleichsteht!)
    Sorry für die Müh die ich gemacht hab 🙂 und Danke trotzdem

    NC


Anmelden zum Antworten