Nombre de sliders en fonction d'une editbox sous visual c++

Signaler
Messages postés
65
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
20 mai 2009
-
Messages postés
65
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
20 mai 2009
-
Bonjour je découvre pas à pas la programmation en C++ et plus particulièrement sous Visual C++. Malheureusement j'éprouve des difficultés pour mon sujet c'est pour cela que je cherche de l'aide. Voici ce que j'aimerai faire : en fonction d'une editbox où un utilisateur devra entrer un nombre il devra apparaître le nombre de sliders saisi. Exemple : l'utilisateur choisi d'entrer le nombre 9, il devra alors apparaître 9 sliders différents les uns en dessous des autres.Voilà, merci d'avance.

2 réponses

Messages postés
65
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
20 mai 2009

Voici le code que j'ai commencé :

// CDlg_Demo_Slider message handlers


BOOL CDlg_Demo_Slider::OnInitDialog()
{
CDialog::OnInitDialog();
CString strTemp;


nb_slider=3;


strTemp.Format("%d", nb_slider);
SetDlgItemText(IDC_NBSLIDER,strTemp);


affich_slider();
UpdateData(FALSE);


return TRUE;
}


void CDlg_Demo_Slider::OnMoins()
{
nb_slider--;
if (nb_slider<1) nb_slider=1;


CString strTemp;


strTemp.Format("%d", nb_slider);
SetDlgItemText(IDC_NBSLIDER,strTemp);


affich_slider();
UpdateData(FALSE);
}


void CDlg_Demo_Slider::OnPlus()
{
nb_slider++;
if (nb_slider>50) nb_slider=50;
CString strTemp;


strTemp.Format("%d", nb_slider);
SetDlgItemText(IDC_NBSLIDER,strTemp);


affich_slider();
UpdateData(FALSE);
}


void CDlg_Demo_Slider::OnOK()
{
 // TODO: Add extra validation here
 
 CDialog::OnOK();
}

void CDlg_Demo_Slider::affich_slider()
{
CString strTemp;
int j;


CSliderCtrl** pSliderCtrl;
if (!(pSliderCtrl=(CSliderCtrl**)malloc(sizeof(CSliderCtrl*)*nb_slider)))  // réservation mémoire   
 return;
for (j=0;j<nb_slider;j++)
 pSliderCtrl[j]=new CSliderCtrl();
}
Messages postés
65
Date d'inscription
jeudi 16 avril 2009
Statut
Membre
Dernière intervention
20 mai 2009

Alors voilà j'ai réussi à afficher le nombre de sliders correspondants malheureusement ils sont en position verticale, est-ce que quelqu'un sait comment je peux faire pour les positionner horizontalement, merci?

void CDlg_Demo_Slider::OnOK()
{
 // TODO: Add extra validation here
 
 CDialog::OnOK();
}




void CDlg_Demo_Slider::affich_slider()
{
CString strTemp;
int j;


if (!(pSliderCtrl=(CSliderCtrl**)malloc(sizeof(CSliderCtrl*)*nb_slider)))  // réservation mémoire   
 return;


for (j=0;j<nb_slider;j++)
 {
 RECT rect={20,20,20,20};
 pSliderCtrl[j]=new CSliderCtrl();
 (*pSliderCtrl[j]).Create(UDS_SETBUDDYINT| WS_VISIBLE | WS_CHILD|WS_DISABLED|UDS_AUTOBUDDY ,rect,m_parametres,m_OK.GetDlgCtrlID()+(10000+j));
 (*pSliderCtrl[j]).SetWindowPos(&m_OK,120+(j*30),20,40,300,SWP_NOZORDER);
 (*pSliderCtrl[j]).SetRange(1,50);
 //(*pSliderCtrl[j]).SetProperty
 }




}