bonjour
avec les mfc(sous VC++6) je cherche à créé dans une boite de dialogue avec 3 edit text correspondant aux composantes RGB d'une couleur et un static affichant la couleur. Quand l'utilsateur modifie la valeur d'un edit je veux mettre à jour la couleur :
voila ce que j'ai
j'ai essayer de placer ce bout de code dans initdialog et ma fonction updatecolor...(et un peu partout mais sans succes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 BOOL CDlgColor::OnInitDialog() { CDialog::OnInitDialog(); m_Spin_Red.SetRange(0,255); m_Spin_Green.SetRange(0,255); m_Spin_Blue.SetRange(0,255); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDlgColor::OnChangeEditColorRed() { UpdateColor(); } void CDlgColor::OnChangeEditColorGreen() { UpdateColor(); } void CDlgColor::OnChangeEditColorBlue() { UpdateColor(); } void CDlgColor::UpdateColor() { } void CDlgColor::OnPaint() { CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here // Do not call CDialog::OnPaint() for painting messages })
ce n'est peut etre pas une bonne methode ou y'a peut etre une methode plus simple? bref si quelqu'un peut me donner un coup de main, merci...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 CDC* dc = m_StaticColor.GetDC(); CBrush lBrush; //recuperation des coordonnées du control de dessin CRect Rect; m_StaticColor.GetWindowRect(&Rect); m_StaticColor.ScreenToClient(&Rect); lBrush.CreateSolidBrush(RGB(r,g,b)); dc->SelectObject(&lBrush); dc->FillRect(Rect,&lBrush); //Delete objet dc->DeleteDC(); lBrush.DeleteObject();
Partager