none
Probleme de choix avec SendMessage RRS feed

  • Question

  • Salut, 
    j'utilise un SendMessage pour faire mes choix sur l’exécution de certaines parties de mon application 
    mais chaque fois que je fais un choix , je me retrouve toujours sur mon premier choix!quel est peut être mon problème? 
    voici mon code de choix:

    if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO22),BM_GETCHECK,0,0)==1  &&  SendMessage(GetDlgItem(hwnd_fen,IDC_CHECKBOX39),BM_GETCHECK,0,0)==BST_CHECKED)
    		choix=0;
    
    	
    	if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO24),BM_GETCHECK,0,0)==0 &&  !(SendMessage(GetDlgItem(hwnd_fen,IDC_CHECKBOX39),BM_GETCHECK,0,0)==BST_CHECKED))
    		choix=1;

    Merci pour votre aide.

    vendredi 20 avril 2012 15:57

Réponses

  • SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO22), BM_GETCHECK, 0, 0) vaut 0 si le radio bouton n'est pas coché, et vaut 1 si le bouton est coché.

    En gros, quelque chose comme :

    if (bouton IDC_RADIO22 == 1)
     choix = 0;

    if (bouton IDC_RADIO24 == 1)
     choix = 1;

    if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO22), BM_GETCHECK,0,0) == 1) 
        choix=0;
    
    if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO24), BM_GETCHECK,0,0) == 1) 
        choix=1;

    J'ai juste changé le "==0" par "==1" dans le deuxième if.

    • Proposé comme réponse Ciprian Duduiala mardi 24 avril 2012 05:48
    • Marqué comme réponse ibrakola mardi 24 avril 2012 08:33
    lundi 23 avril 2012 18:01
    Auteur de réponse

Toutes les réponses

  • Le code est correct.

    choix = 0 si le radio-bouton IDC_RADIO22 est coché et le checkbox IDC_CHECKBOX32 est coché.

    choix = 1 si le radio-bouton IDC_RADIO24 n'est pas coché et le checkbox IDC_CHECKBOX32 n'est pas coché.

    Est-ce que ces trois contrôles existent bien ?

    Peut-être que l'erreur vient du fait que dans un test IDC_RADIO22 est utilisé, et dans l'autre IDC_RADIO24 ?

    vendredi 20 avril 2012 22:26
    Auteur de réponse
  • Je suis entrain de changer le test de IDC_RADIO24 pour voir ce que ca va donner. merci
    lundi 23 avril 2012 08:03
  • actuellement, j'ai enlevé  IDC_CHECKBOX39 et je retrouve avec une condition 

    if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO22),BM_GETCHECK,0,0)==1) 
    choix=0;

    if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO24),BM_GETCHECK,0,0)==0) 
    choix=1;

    les 2(IDC_RADIO22 et IDC_RADIO24 ) existent.

    ce que j'arrive pas comprendre, quelqu'en soit mon choix il reboucle seulement sur le choix IDC_RADIO22.

    lundi 23 avril 2012 13:49
  • L'appel à SendMessage avec BM_GETCHECK retourne 1 si le bouton est
    coché, et 0 sinon.
    La première condition est vérifiée si IDC_RADIO22 est coché (et alors,
    choix=0).
    La deuxième condition est vérifiée si IDC_RADIO24 n'est pas coché (et
    alors, choix=1). Mais est-ce bien ce que vous voulez ?
     
    lundi 23 avril 2012 15:42
    Auteur de réponse
  • Ce que je voudrais c'est arriver a faire le choix=0 ou choix=1 pour mon application.

    lundi 23 avril 2012 16:09
  • Oui mais dans quel cas voulez-vous choix=0 et dans quel cas choix=1 ?
    Quand quel bouton est coché ? Expliquez un peu plus ce que vous
    souhaitez.
     
    lundi 23 avril 2012 16:18
    Auteur de réponse
  • je voudrais avoir le choix=0 quand je coche  IDC_RADIO22 et le choix=1 quand je coche  IDC_RADIO24.

     je ne voudrais pas avoir les 2 en même temps chaque cas  séparé.Pour pouvoir exécuter   IDC_RADIO22 quand je fais le choix=0 et   IDC_RADIO24 quand je fais le choix=1.

    lundi 23 avril 2012 16:28
  • SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO22), BM_GETCHECK, 0, 0) vaut 0 si le radio bouton n'est pas coché, et vaut 1 si le bouton est coché.

    En gros, quelque chose comme :

    if (bouton IDC_RADIO22 == 1)
     choix = 0;

    if (bouton IDC_RADIO24 == 1)
     choix = 1;

    if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO22), BM_GETCHECK,0,0) == 1) 
        choix=0;
    
    if (SendMessage(GetDlgItem(hwnd_fen,IDC_RADIO24), BM_GETCHECK,0,0) == 1) 
        choix=1;

    J'ai juste changé le "==0" par "==1" dans le deuxième if.

    • Proposé comme réponse Ciprian Duduiala mardi 24 avril 2012 05:48
    • Marqué comme réponse ibrakola mardi 24 avril 2012 08:33
    lundi 23 avril 2012 18:01
    Auteur de réponse
  • Merci, c'est bon maintenant.
    mardi 24 avril 2012 08:32