ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 20 juil. 2007 à 16:16
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 ^^
ndubien
Messages postés557Date d'inscriptiondimanche 25 septembre 2005StatutMembreDernière intervention10 mai 20144 20 juil. 2007 à 18:46
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?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 20 juil. 2007 à 19:22
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;}