Bonsoir,
Je reviens vers vous afin de trouver une aide salvatrice. Je me suis mis en tête de placer dans une .DLL qq fonctions effectuant un travail sur la 'zone non-cliente' de la TForm appellante.
J'en suis venu a penser que je devais passer par des Hooks pour gérer le dessin et les évènements (clavier ou souris) tout au long de la 'vie' de la form.
Pour ce qui est des Hooks claviers et souris, pas vraimment de gros problèmes puisqu'il 'suffit' de suivre le tuto de gRRosminet ici.
Mais, je cherche a assurer le travail dans la zone non-cliente automatiquement et je pensais devoir passer par un Hook de type WH_CALLWNDPROC.
Dèja, première question : suis je sur la bonne piste ?
Ensuite, même si j'obtiens l'effet recherché a première vue (durant les premiers instants), j'obtiens en réalité un tres beau plantage du plus bel effet (qui m'oblige même dans certains cas a rebooter ma machine ! ) ... dois donc y avoir un problème qq part.
Je touche ici aux limites de mes maigres connaissances, aucune formation théorique ... que voulez vous ...
Voici je tout petit bout de code concernant le hook :
Je ne sais pas trop comment m'en sortir ... ni ce qui est faux dans ce que je fais. J'ai vu qu'il y a des appels possibles a des fonctions telles que VirtualProtect et cie, mais j'avoue être un peu pommé ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam) { if (nCode < 0) { return CallNextHookEx(VueDonnees->CWHookHandle,nCode,wParam,lParam); } else { CWPSTRUCT *msg = (CWPSTRUCT *)lParam; switch (nCode) { case HC_ACTION: if (msg->message == WM_NCPAINT ) { if (Bloquer != true) { //'fonctions de dessin' dans la zone non cliente... } } break; default: break; } return CallNextHookEx(VueDonnees->CWHookHandle,nCode,wParam,lParam); } }
Merci par avance pour vos conseils,
@ +
Partager