vow
Messages postés54Date d'inscriptionmardi 18 septembre 2001StatutMembreDernière intervention27 juillet 2005
-
10 févr. 2003 à 11:49
vow
Messages postés54Date d'inscriptionmardi 18 septembre 2001StatutMembreDernière intervention27 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...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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...