Intercepter les messages de notification envoyés par un spin (=up-down)

julien_boss Messages postés 165 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 24 octobre 2007 - 5 mars 2006 à 17:12
julien_boss Messages postés 165 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 24 octobre 2007 - 6 mars 2006 à 17:49
re-bonjour,

est-ce que quelqu'un pourrait m'expliquer en détails les étapes utiles à intercepter et à gérer soi-même les messages de notifications envoyés par un spin, svp ?
car sur MSDN, c'est assez flou je trouve...

merci
A voir également:

3 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
6 mars 2006 à 11:01
Tu dois sous classer ton composants.
C'est a dire lui attribuer sa propre fonction de callback qui lui permettra de gérer ses messages.
Fais une rechercher sur les mots clés "sous classer" et "subclassing".

De mémoire; il y a des exemples sur le site.

Shell
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
6 mars 2006 à 12:51
Salut,

Pas besoin de sous classer pour un message de notification, puisqu'il est envoyé a la fenetre parente..
0
julien_boss Messages postés 165 Date d'inscription samedi 4 juin 2005 Statut Membre Dernière intervention 24 octobre 2007
6 mars 2006 à 17:49
ok merci pour vos réponses mais j'ai trouvé par moi même, dsl pour le poste inutile. Je mets ma source au cas où ca rende service à quelqu'un :

BOOL CALLBACK DialogProc(HWND hDialogBox, UINT message, WPARAM wParam, LPARAM lParam)
{
//variable modifiée lorsqu'on appuie sur une des fléches du up-down
static short fonc;

switch (message)
{
case WM_INITDIALOG:
{
//Création du controle up-down
CreateUpDownControl( WS_CHILD|WS_VISIBLE|UDS_ALIGNRIGHT|UDS_NOTHOUSANDS|UDS_ARROWKEYS,
0, 0, 20, 30,
hDialogBox, IDC_SPIN,
hTInst, GetDlgItem(hDialogBox, IDC_EDITTEXT),
coordRep.nbDroite, 1, 1
);

fonc = 1;

return FALSE;
}
case WM_NOTIFY:

switch (LOWORD(wParam))
{
case IDC_SPINDELETEF:


case UDN_DELTAPOS:
{
NMUPDOWN * lpnmud = (LPNMUPDOWN) lParam;

//On récupére la postion du controle spinner (variable int)
fonc = lpnmud->iPos;


return TRUE;
}
}
return TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDCANCEL:
EndDialog(hDialogBox, 0);
return TRUE;
case IDOK:

//...

EndDialog(hDialogBox, 0);
return TRUE;
}
break;
}
return FALSE;
}
0
Rejoignez-nous