je suis autodidact en c++ et mfc, voila mon probleme, j'ai une application crée avec MFC, il se trouve dans cette application il y a un boutton ou un checkbox et un deplacement de slider qui utilise la meme tache pendant un clic ou un deplacement d'un slider, donc j'ai réécrit a chaque fois la tache a excuter. je cherche un maniere de definir la fonction aileur une seule fois, ainsi a chaque fois que quelquechose utilise cette fonction, je fais juste fonction(); et ca execute. j'ai essayé de definir la fonction dans un nouveux fichier .cpp mais il merde car il ne reconnais pas les GetDlgItem...
il me dit "error C2660: 'GetDlgItem' : function does not take 1 parameters"
ma fonction a executer est la suivante:
Code :
- void fonction(){
- CSliderCtrl * sliderr = (CSliderCtrl *) GetDlgItem (IDC_red); //slider rouge
- CSliderCtrl * sliderv = (CSliderCtrl *) GetDlgItem (IDC_green); //vert
- CSliderCtrl * sliderb = (CSliderCtrl *) GetDlgItem (IDC_blue); //bleu
- int rouge=sliderr->GetPos()*2.55; //variable recupérant la valeur du curseur
- int vert=sliderv->GetPos()*2.55;
- int bleu=sliderb->GetPos()*2.55;
- CRect rect2;
- CWnd* col=GetDlgItem(IDC_color);
- col->GetClientRect(&rect2);
- CDC* cdc2=col->GetDC();
- CPen cpen2;
- cpen2.CreatePen(PS_SOLID,1,RGB(rouge,vert,bleu));
- cdc2->SelectObject(&cpen2);
- double echx2=(double)(rect2.right - rect2.left)/(double)255;
- double echy2=(double)(rect2.bottom - rect2.top)/(double)255;
- int ix2,iy2;
- ix2=rect2.left;
- iy2=rect2.bottom;
- cdc2->MoveTo(ix2,iy2);
- int i=0;
- int j=0;
- for(i=0;i<256;i++){ //remplissage du carré de couleur
- ix2=(int)(i*echx2);
- iy2=0;
- cdc2->MoveTo(ix2,iy2);
- iy2=(int)(255*echy2);
- cdc2->LineTo(ix2,iy2);
- }
- }
|
je vous remerci pour toute proposition 
Message édité par neg'gwada le 26-05-2004 à 13:36:13
---------------
--- WinSplit Revolution ---