Bon alors en fait c’était tout con,
Le message EN_CHANGE est envoyé à la fenêtre indépendamment de toute création de variable sur le contrôle.
Code:
1 2
|
ON_EN_CHANGE(IDC_EDITONE, OnChangeEditone) |
La variable contrôle est valide (m_hwnd!=NULL) si la variable est attachée au contrôle Windows.
Ce traitement est fait par le premier UpdateData soit ici par la fonction CDialog ::OnInitDialog.
Seulement avant que UpdateData arrive le spin change la valeur dans l’edit et met zéro.
Donc avant que la variable soit prête…
La solution est simple :
Code:
1 2
|
if(!m_Edit.m_hWnd) return; |
Tout en prenant quand même conscience que pour chaque caractère saisi ou modifié EN_CHANGE est appelée et donc le traitement associé.
Moi j’aurai peut être placé le traitement sur la perte de focus du contrôle EN_KILLFOCUS.
Ou sur l’accepte de la dialogue…
:D