CSlider aktuallisieren
-
Hallo,
ich habe ein Problem mit einem Slider bei MFC.
void CBigVideoDlg::OnBnClickedRadioLaerNight() { int iWert; char cValue[32]; m_cExposureSlider.SetRange(21, 520, FALSE); DSRSetParamCamera("GET", "EXPOSURE", cValue); iWert = atoi(cValue); if(iWert > 520) { m_cExposureSlider.SetPos(520); sprintf(cValue, "520"); DSRSetParamCamera("SET", "EXPOSURE", cValue); } //m_cExposureSlider.RedrawWindow(); DSRSetParamCamera("SET", "LASER", "1"); }
Hier habe ich den Befehl: "SetRange()" verwendet, und einen neuen Wertebereich gesetzt.
Da aber der Wert noch ect. der selbe ist, soll der Slider auf die Richjtige Position springen.
Einfach ausgedrpckt:
alter Slider:
SetRange(1, 10);
wert 5Der Slider ist in der Mitte...
Neuer Slider
SetRange(1, 100);
wert 5Der slider muss sehr weit links sein.
Wie schaffe ich es, dass er da hin springe, wenn ich ihn aktuallisiere??mfg
Freshman
-
Hehe, das Problem hatte ich auch schon. IMHO ein Bug in der Implementierung. Umgehen lässt er sich so:
//Pseudocode int nPos=GetPos(); SetPos(nPos-1); SetPos(nPos);
-
m_cExposureSlider.SetRange(21, 520, FALSE);
bei mir war diese Zeile der Fehler, es muss so heißen
m_cExposureSlider.SetRange(21, 520, TRUE);
dann geht irgendwie alles
ob das beim MFC im 6 er Studio geht weiß ich allerdings nicht, da musste ich damals auch so einen komischen weg gehen, wie du gerade geschrieben hast.