Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion de Checkboxes créées dynamiquement

3 réponses
Avatar
No_Name
Bonjour,

Je développe une application avec les MFC et VS2005 en C++.

Je crée des checkboxes dynamiquement dans mon application, mais je ne
sais pas comment récupérer les clics et leurs changements d'état.

Code de création de mes boutons :
for (int i=0;i<5;i++)
{
CButton *dynButton= new CButton;
CRect monRect = CRect(10,i * 100,i * 100,i * 130);

dynButton->Create(_T(nomBouton.GetBuffer(0)),WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,monRect,this,4);
dynButton->MoveWindow((20*(i+1)),100, 10,10,1);
}

(ce code fonctionne très bien et crée les checkboxes dans mon CDialog).

J'ai trouvé dans la page web indiquée ci-dessous une recommendation
(utiliser OnButtonRange()) pour détecter les clics sur les boutons ou
les checkboxes, mais il ne se passe rien quand j'applique cette
recommandation.
http://cpp.developpez.com/faq/vc/?page=MessageMap

Comment puis-je connaitre (ou générer) les ID associés aux boutons
créés dynamiquement ?

Merci de votre aide.

3 réponses

Avatar
mika
No_Name wrote:
Bonjour,

Je développe une application avec les MFC et VS2005 en C++.

Je crée des checkboxes dynamiquement dans mon application, mais je ne
sais pas comment récupérer les clics et leurs changements d'état.

Code de création de mes boutons :
for (int i=0;i<5;i++)
{
CButton *dynButton= new CButton;
CRect monRect = CRect(10,i * 100,i * 100,i * 130);

dynButton->Create(_T(nomBouton.GetBuffer(0)),WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,monRect,this,4);

dynButton->MoveWindow((20*(i+1)),100, 10,10,1);
}

(ce code fonctionne très bien et crée les checkboxes dans mon CDialog).




Il faut intercepter BN_CLICKED (WM_COMMAND) sur la fenêtre parente :

http://www.functionx.com/visualc/controls/checkbox.htm
http://www.codersource.net/mfc_tutorial_part8.html
Avatar
No_Name
mika a utilisé son clavier pour écrire :
No_Name wrote:
Bonjour,

Je développe une application avec les MFC et VS2005 en C++.

Je crée des checkboxes dynamiquement dans mon application, mais je ne sais
pas comment récupérer les clics et leurs changements d'état.

Code de création de mes boutons :
for (int i=0;i<5;i++)
{
CButton *dynButton= new CButton;
CRect monRect = CRect(10,i * 100,i * 100,i * 130);

dynButton->Create(_T(nomBouton.GetBuffer(0)),WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,monRect,this,4);

dynButton->MoveWindow((20*(i+1)),100, 10,10,1);
}

(ce code fonctionne très bien et crée les checkboxes dans mon CDialog).




Il faut intercepter BN_CLICKED (WM_COMMAND) sur la fenêtre parente :

http://www.functionx.com/visualc/controls/checkbox.htm
http://www.codersource.net/mfc_tutorial_part8.html



Merci pour votre réponse. Toutefois, je n'ai pas réussi à comprendre
comment assigner un ID à chacun des checkboxes que j'ai créé ...
Avatar
No_Name
No_Name avait soumis l'idée :
mika a utilisé son clavier pour écrire :
No_Name wrote:
Bonjour,

Je développe une application avec les MFC et VS2005 en C++.

Je crée des checkboxes dynamiquement dans mon application, mais je ne sais
pas comment récupérer les clics et leurs changements d'état.

Code de création de mes boutons :
for (int i=0;i<5;i++)
{
CButton *dynButton= new CButton;
CRect monRect = CRect(10,i * 100,i * 100,i * 130);

dynButton->Create(_T(nomBouton.GetBuffer(0)),WS_CHILD|WS_VISIBLE|BS_AUTOCHECKBOX,monRect,this,4);

dynButton->MoveWindow((20*(i+1)),100, 10,10,1);
}

(ce code fonctionne très bien et crée les checkboxes dans mon CDialog).




Il faut intercepter BN_CLICKED (WM_COMMAND) sur la fenêtre parente :

http://www.functionx.com/visualc/controls/checkbox.htm
http://www.codersource.net/mfc_tutorial_part8.html



Merci pour votre réponse. Toutefois, je n'ai pas réussi à comprendre comment
assigner un ID à chacun des checkboxes que j'ai créé ...



OK, je n'ai rien dit : apparemment, c'est le dernier argument de la
fonction Create() !