cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008
-
25 juin 2003 à 14:33
cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008
-
25 juin 2003 à 15:51
Je sait qu'il y a déjà des messages qui y ressemble mais je n'arrive pas à modifier les sources comme je voudrait. J'aimerais faire un prog avec des raccourcis clavier du style Ctrl+A avec les hooks mais je n'arrive pas à définir 2 touches... Aide-moi BruNews le boss des hooks :blush) ;) !
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 juin 2003 à 14:42
pourquoi fais-tu un hook pour ctrl+A, faisable mais LoadAccelerators() ne conviendrait-il pas ?
sinon va falloir fournir details du contexte applicatif.
BruNews, ciao...
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 juin 2003 à 14:58
mais il n'y a pas de fonction VC++ ou BCB ou autre. C'est une fonction du systeme win32.
dans un fichier de resource tu dois avoir un truc de ce genre:
#define IDR_ACCEL 102
IDR_ACCEL ACCELERATORS
BEGIN
VK_F3, ID_DATE, VIRTKEY, NOINVERT
VK_ESCAPE, ID_QUIT, VIRTKEY, NOINVERT
END
ensuite dans ton code:
HACCEL hAccel = LoadAccelerators(hinst, MAKEINTRESOURCE(IDR_ACCEL));
la boucle des messages sera a modifier:
while(GetMessage(&msg, NULL, 0, 0)) {
if(!TranslateAccelerator(hmain, hAccel, &msg)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
d'autres methodes possibles, par exemple decomposer les messages dans la boucle GetMessage et les dispatcher de maniere perso.
BruNews, ciao...
cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008 25 juin 2003 à 15:03
Ok mais est-ce que c'est une fonction utilisable uniquement quand le prog a le focus ou pas ? Je suppose que ça marche sans mais je préfère demander parce que si je dois me lancer dans un truc que je connais pas pour me rendre qompte que c'est pas ce que je veux...
8.:DOMINION:.8
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 juin 2003 à 15:19
Bien entendu que cela n'est valable QUE a l'interieur de ton processus, chacun peut charger la table d'accelerateurs qu'il veut sans interferer sur les autres.
BruNews, ciao...
cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008 25 juin 2003 à 15:23
À la limite je préfère faire avec les hooks ça je connais... Explique moi juste comment il faut faire. Après (si j'ai le courage), j'essayerai avec LoadAccelerators
8.:DOMINION:.8
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 25 juin 2003 à 15:34
Expliquer les HOOK, demain j'y suis encore. Vaut mieux que je t'ecrive un exemple j'irai plus vite.
Il me faut des details sur ton prog pour savoir quel race de hook generer et surtout comment il doit communiquer.
passe par le mail sinon sera trop long ici.
bnutiles@wanadoo.fr
BruNews, ciao...
cs_dominion
Messages postés230Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention15 mai 2008 25 juin 2003 à 15:35
Je vais être plus clair : en fait j'essaye de faire un programme de contrôle de WinAmp ou autre programme (par exemple quand on est en train de programmer et qu'on est trop captivé par ce qu'on fait pour changer de fenêtre ;) ).
Mais pour ça je dois utiliser les hooks, ce qui revient a mon problème : je sais faire Ctrl, je sait faire N mais je sais pas faire Ctrl+N.