Sliderposition nach Serialize richtig anzeigen



  • Hallo, ich benutze zur Anzeige

    void ChotkeyDlg::OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult)
    {
    	float value = (float)m_Slider[0].GetPos()/100;
    	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
    	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
    	controlModel()->i_Slider1 = value;
    	m_sDaytime.Format( "%.2f", value );
    	SetDlgItemText(IDC_STATIC_DT, m_sDaytime);
    	*pResult = 0;
    }
    

    nach der Wiederherstellung,

    UpdateData();
    
    //	float value;
    	int i;
    	CFile f;
    
    	char strFilter[] = { "CFG Files (*.cfg)|*.cfg|All Files (*.*)|*.*||" };
    
    	CFileDialog FileDlg(TRUE, ".cfg", NULL, 0, strFilter);
    
    	if( FileDlg.DoModal() == IDOK )
    	{
    		if( f.Open(FileDlg.GetFileName(), CFile::modeRead) == FALSE )
    			return;
    		CArchive ar(&f, CArchive::load);
    
    		ar >> i_Slider1 >> i_Slider2 >> i_Slider3 >> i_Slider4 >> i_Slider5 
    		>> i_Slider6 >> i_Slider7;
    		ar.Close();
    	}
    	else
    		return;
    
    	f.Close();
    	UpdateData(FALSE);
    

    bleibt die alte Position stehen. Gibt es einen Refresh?



  • m_Slider[0].SetPos(...) oder so etwas?



  • der Slider ist an der richtigen Position, was fehlt ist:

    controlModel()->i_Slider1 = value;
    SetDlgItemText(IDC_STATIC_DT, m_sDaytime);
    

    ist es igrgendwie möglich die Methode OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult) aufzurufen? Mir fehlen die Parameter.



  • Damit habe ich auch immer ein Problem, bei mir erzwingt ein SetFocus() den Aufruf.


Anmelden zum Antworten