Scratch Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Hi, ich hab nen Slider in einer DialogBox dieser soll wenn er bewegt wird den Wert an ein Static Text geben. Der Text heisst IDC_COLOR_STATIC. Das ganze natürlich mit VC+++ Kann mir da jemand helfen ?? Hab schon alle Events durchprobiert aber ich bekomms net hin .. Zitieren
Klotzkopp Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 Ein Slider-Steuerelement senden Scroll-Nachrichten an sein Parent. Wenn es ein horizontaler Slider ist, sendet er WM_HSCROLL, ein vertikaler sendet WM_VSCROLL. Du musst also dem Parent-Fenster des Sliders - üblicherweise ein Dialog oder ein FormView - eine Nachrichtenbehandlungsfunktion für WM_HSCROLL bzw. WM_VSCROLL hinzufügen. Der dritte Parameter dieser Funktion erhält einen Zeiger auf das Steuerelement, leider in Form eines CScrollBar*, auch wenn die Nachricht von einem Slider kommt. Daher muss man den Zeiger casten, um zu prüfen, ob die Nachricht vom Slider stammt: [color=blue]void[/color] [color=blue]CDeinDlg[/color]::[color=darkred]OnHScroll[/color]([color=blue]UINT[/color] [color=darkblue]nSBCode[/color], [color=blue]UINT[/color] [color=darkblue]nPos[/color], [color=blue]CScrollBar[/color]* [color=darkblue]pScrollBar[/color]) { [color=blue]CSliderCtrl[/color]* [color=darkblue]pSlider[/color] = [color=blue]static_cast[/color]<[color=blue]CSliderCtrl[/color]*>( [color=darkred]GetDlgItem[/color]( [color=purple]IDC_DEIN_SLIDER[/color] ) ); [color=blue]if[/color]( [color=darkblue]pScrollBar[/color] == [color=blue]reinterpret_cast[/color]<[color=blue]CScrollBar[/color]*>( [color=darkblue]pSlider[/color] ) ) { [color=blue]int[/color] [color=darkblue]nRealPos[/color] = [color=darkblue]pSlider[/color]->[color=darkred]GetPos[/color](); [color=blue]CString[/color] [color=darkblue]strPos[/color]; [color=darkblue]strPos[/color].[color=darkred]Format[/color]( "%d", [color=darkblue]nRealPos[/color] ); [color=darkred]SetDlgItemText[/color]( [color=purple]IDC_COLOR_STATIC[/color], [color=darkblue]strPos[/color] ); } [color=blue]CDialog[/color]::[color=darkred]OnHScroll[/color]([color=darkblue]nSBCode[/color], [color=darkblue]nPos[/color], [color=darkblue]pScrollBar[/color]); }[/CODE]Wenn Du bereits eine Steuerelementvariable für den Slider hast, kannst Du Dir natürlich den Kram mit GetDlgItem sparen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.