Récupérer le message CB_SETCURSEL

vow Messages postés 54 Date d'inscription mardi 18 septembre 2001 Statut Membre Dernière intervention 27 juillet 2005 - 10 févr. 2003 à 11:49
vow Messages postés 54 Date d'inscription mardi 18 septembre 2001 Statut Membre Dernière intervention 27 juillet 2005 - 12 févr. 2003 à 10:05
Bonjour,

je travaille tjs sur Visual C++ 6 en langage C

J'ai une fenêtre avec 2 combo-box et une case à cocher.
Le premier peut changer ou pas le second suivant la valeur.
Le second peut cocher automatiquement la case suivant sa valeur.
Lorsque je récupère le message CBN_SELCHANGE du 2eme CB, il n'y a aucun problème pour cocher ou non.
Par contre, je n'arrive pas à récupérer le message CB_SETCURSEL...
(le CBN_SELCHANGE n'est pas envoyé lorsqu'on envoie un message CB_SETCURSEL)

Voici une partie de mon code :
BOOL CALLBACK PRSMaFenetreDlgProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{

switch (message)
{
// du code mais rien d'important pour la suite

  case WM_COMMAND:
     switch(LOWORD(wParam))
     {
         case ID_CB1:
            if (HIWORD(wParam) == CBN_SELCHANGE)
            {
                 if (GetDlgItemText(hDlg, ID_ASS_ALIAS, szBuff, sizeof(szBuff)) != 0)
                 {

                      // Ca passe bien tout ce code

                      if (strstr(strupr(szBuff), "XXX") == 0)
                          SendDlgItemMessage(hDlg, ID_CB2, CB_SETCURSEL, 3, 0L);
                      if (strstr(strupr(szBuff), "YYY") == 0)
                          SendDlgItemMessage(hDlg, ID_CB2, CB_SETCURSEL, 1, 0L);
                 }
            }
            break;

         case ID_CB2:
            // C'est ici que je veux récuperer le CB_SETCURSEL aussi
            if (HIWORD(wParam) == CBN_SELCHANGE)
            {
                 i = (int) SendDlgItemMessage(hDlg, ID_CB2, CB_GETCURSEL, 0, 0L);                 if (i 1 || i 4)
                     CheckDlgButton(hDlg, ID_CHECKBOX1, BST_CHECKED);
            }
            break;
     }
     break;
}

}


Comment récupérer ce message CB_SETCURSEL, je pense avoir tout essayer mais rien concluant ?
Merci d'avance.
@++

PS : J'ai trouvé un moyen en lançant le message CBN_SELCHANGE après CB_SETCURSEL mais je n'aime pas trop cette solution...

SendMessage(hDlg, WM_COMMAND, MAKELONG(ID_CB2, CBN_SELCHANGE), (LPARAM)hDlg); 


~~~~ Vow ~~~~

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 févr. 2003 à 12:34
Salut,
CB_SETCURSEL ne se recupere pas. Il est envoye par TON code. CBN_SELCHANGE est recuperable SI intervention user. Donc a toi de completer le code sous CB_SETCURSEL pour completer affichage ou autre. Si tu as, ce que je pense et conseille, deja mis le code dans la recup de CBN_SELCHANGE alors il te suffit d'un:
PostMessage(hParent, WM_COMMAND,
MAKELONG(idCmb,CBN_SELCHANGE),
(long) hcmb);
ciao...
0
vow Messages postés 54 Date d'inscription mardi 18 septembre 2001 Statut Membre Dernière intervention 27 juillet 2005
10 févr. 2003 à 19:32
C'est bien ce que j'ai écrit dans mon PS....... :sleepy)
Merci quand même ;)

~~~~ Vow ~~~~
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
10 févr. 2003 à 19:35
oui mais fais gaffe, le aeme param est le hcmb et NON hdlg.
ciao...
0
vow Messages postés 54 Date d'inscription mardi 18 septembre 2001 Statut Membre Dernière intervention 27 juillet 2005
11 févr. 2003 à 09:08
Comment on l'a ce hCmb ?

~~~~ Vow ~~~~
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 févr. 2003 à 09:43
Salut,
PostMessage(hdlg, WM_COMMAND,
MAKELONG(idCmb,CBN_SELCHANGE),
(long) GetDlgItem(hdlg,idCmb));
ciao...
0
vow Messages postés 54 Date d'inscription mardi 18 septembre 2001 Statut Membre Dernière intervention 27 juillet 2005
12 févr. 2003 à 10:05
Merci pour cette précision :big)

~~~~ Vow ~~~~
0
Rejoignez-nous