Procédure pour BUTTON

Signaler
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
-
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
-
Bonjour,



Est-t'il possible d'associer une procédure à un BUTTON?
Si oui comment?
Merci de me joindre un exemple de code...

<hr />




Merci d'avance et à bientôt.






Nico

3 réponses

Messages postés
285
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
20 janvier 2013

Salut !
Perso j'ai jamais fait mais logiquement tu devrai pouvoir en faisant comme ca :

//Ta procédure pour ton boutton
LRESULT MaProcedureDeMonBoutton(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
//Ton code
}

HWND hButton = CreateWindow( ........ )//Je t'épargne la création du bouton, c'est juste pour le nom de variable hButton.
SetWindowLongPtr(hButton, GWLP_WNDPROC, (LONG_PTR)MaProcedureDeMonBoutton);


Voilà, normalement ca devrait marcher, a tester ^^
Messages postés
557
Date d'inscription
dimanche 25 septembre 2005
Statut
Membre
Dernière intervention
10 mai 2014
3
Bonjour,

Merci pour la réponse, mais j'ai désormais un nouveau problème qui est apparu suite à l'ajout de SetWindowLongPtr dans mon programme.
La situation: une procédure est appliquée à un EDIT.
Voici la procédure:
LRESULT CasesProc(HWND hwndCase,UINT msgCase,WPARAM wParam,LPARAM lParam) {
     switch (msgCase) {
          case WM_KEYDOWN:
               {
                       SendMessage( hwndPrinc, WM_KEYDOWN, 0, 0 );
                       return 0;
               }
          default:
               return DefWindowProc( hwndCase , msgCase , wParam , lParam );
     }
}
Je voulais que cette procédure envoi un message à à la fenêtre principale lors d'un appuie sur une touche, celà fonctionne. Mais le problème est que mes EDIT ne s'affiche plus, je peux les cliquer (le curseur change quand je passe dessus et la fenêtre principale réagit lorsque j'appuie sur une touche dans un EDIT), mais je ne les vois plus du tout. D'où peut venir le problème? Peut-t'il venir de ma procédure?

<hr />

Merci d'avance pour votre aide et à bientôt...

Nico
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

il faut pas appeler DefWindowProc() mais <name>CallWindowProc()</name>
en lui passant en premier param le handle de l'ancienne procédure de
l'edit (celle qui est retournée par SetWindowLongPtr() quand tu
effectues le sous classement). <link href="../../../../../css/ie4.css" type="text/css" rel="stylesheet" /><!-- @ --><link href="../../../../../css/inetsdk.css" type="text/css" rel="stylesheet" /><!-- @ --><style type="text/css"><![CDATA[
PRE.clsCode { font-size:110%; }
PRE.clsSyntax { font-size:100%; }
TD DIV.clsBeta { display:none;}

A:link { color:#0000ff; text-decoration:underline;}
A:visited { color:#0000ff; text-decoration:underline;}
A:hover { color:#3366ff; text-decoration:underline;}
MSHelp\:link {
color:#0000ff;
text-decoration:underline;
cursor:hand;
hoverColor:#3366ff;
filterString: ;}
]]></style><link href="ms-help://Hx/HxRuntime/HxLink.css" type="text/css" rel="stylesheet" />

<xml id="_topicdata" pagetype="function" proj="WinUIHXS" name="CallWindowProc" pubpath="/WinUI/WindowsUserInterface/Windowing/WindowProcedures/WindowProcedureReference/WindowProcedureFunctions/CallWindowProc.htm"><!-- topic data --><root></root></xml>

<xml xmlns=""><mshelp:keyword index="A" term="_win32_CallWindowProc"></mshelp:keyword><mshelp:keyword index="A" term="_win32_CallWindowProc_cpp"></mshelp:keyword><mshelp:toctitle title="CallWindowProc Function"></mshelp:toctitle><mshelp:rltitle title="CallWindowProc Function ()"></mshelp:rltitle><mshelp:keyword index="F" term="CallWindowProc"></mshelp:keyword><mshelp:keyword index="K" term="CallWindowProc"></mshelp:keyword><mshelp:attr name="TopicType" value="kbRef"></mshelp:attr><mshelp:attr name="Locale" value="kbEnglish"></mshelp:attr><mshelp:attr name="DevLang" value="C++"></mshelp:attr><mshelp:attr name="Technology" value="WinUI"></mshelp:attr><mshelp:attr name="TechnologyVers" value="kbWinUI"></mshelp:attr><mshelp:attr name="DocSet" value="WCSDK"></mshelp:attr><mshelp:attr name="DocSet" value="LHSDK"></mshelp:attr><mshelp:attr name="DocSet" value="PSDK"></mshelp:attr><mshelp:attr name="TargetOS" value="Windows"></mshelp:attr><mshelp:attr name="APIName" value="CallWindowProcA"></mshelp:attr><mshelp:attr name="APIName" value="CallWindowProcW"></mshelp:attr><mshelp:attr name="TopicType" value="apiref"></mshelp:attr><mshelp:attr name="APIName" value="CallWindowProc"></mshelp:attr><mshelp:attr name="APIType" value="DllExport"></mshelp:attr><mshelp:attr name="APILocation" value="user32.dll"></mshelp:attr><mshelp:attr name="TopicType" value="kbSyntax"></mshelp:attr></xml>