Slider Programmieren



  • Hallo zusammen,

    ich will ein Slider Programmieren, der die Geschwindigkeit einer Animation verändern soll. Der Slider existiert auch schon und zeigt die Aktuelle Geschwindigkeit an und verändert sich bei Veränderung der Geschwindigkeit ebenfalls. Das Problem ist nur, dass sich die Geschwindigkeit nicht ändert wenn ich den Slider verziehe. Wo liegt mein Fehler

    die Varianle speed ist eine Double Zahl. Eine Vergrößerung dieser Zahl bewirkt in meinem Code eine Beschleunigung und dieser Wert soll beim verschieben des Slieders auch verändert werden

    BOOL CALLBACK SpeedDlgProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
    {
    	int i;
    	TCHAR szText[50];
    	HWND hSpeed;
    
    	hSpeed = GetDlgItem(hDlg, IDA_SPEED);
    	switch(msg) {
    
    		case WM_INITDIALOG:
    
    			wsprintf (szText , "%i", (int)speed);
    			SetDlgItemText (hDlg , IDA_SPEEDTEXT , szText);
    
    			//Berechungsgrenzen
    			SendMessage(hSpeed, TBM_SETRANGE, (WPARAM) 1, (LPARAM)MAKELONG(0,100));
    
    			//Aktuelle Werte setzen:
    			SendMessage(hSpeed,TBM_SETPOS, (WPARAM) 1, (LPARAM)speed);
    
    			return 0;
    
    		case WM_CLOSE:
    			EndDialog(hDlg,0);
    			return 1;
    
    		case WM_COMMAND:
    			switch (LOWORD(wParam))
    		    {
    
    				case WM_HSCROLL:
    				speed = SendMessage(hSpeed, TBM_GETPOS, 0,0);
    				wsprintf (szText , "%i", (int)speed);
    				SetDlgItemText (hDlg , IDA_SPEEDTEXT , szText);
    				break;
    
    			}
    					EndDialog(hDlg,IDOK);
    					//UpdateSBar();
    					return 1;
    
    			break;
    	}
    	return 0;
    }
    


  • s. About Trackbar Controls: Trackbar Notification Messages

    For the TB_THUMBPOSITION and TB_THUMBTRACK notification codes, the high-order word of the wParam parameter specifies the position of the slider



  • habs hinbekommen danke


Anmelden zum Antworten