Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1201 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VC++] Accelerator ...comment faire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VC++] Accelerator ...comment faire ?

n°67728
Kouye
Posté le 26-10-2001 à 14:45:43  profilanswer
 

voila j'ai ajouté Item IDR_ACCELERATOR dans l'éditeur de ressources, spécifié la touche de racourcis .. et l'ID associé (un IDC_Button dans mon cas).
 
malheureusement cela ne fonctionne pas .. j'ai cherché dans l'aide et j'ai rien capté sur l'utilisation des raccourcis :(
 
ce que je voualais c'est que mon raccorucis appèle ma fonction ::OnButton1 (clic sur le bouton).
 
quelqu'un peut t'il m'expliké ?
merci
 :hello:

mood
Publicité
Posté le 26-10-2001 à 14:45:43  profilanswer
 

n°67738
Carbon_14
Posté le 26-10-2001 à 15:29:10  profilanswer
 

Voir un précédent topic, y a sans doute la "clé"..
 
http://forum.hardware.fr/forum2.ph [...] &owntopic=

n°67741
Kouye
Posté le 26-10-2001 à 15:36:53  profilanswer
 

oui merci, je l'avai trouvé aussi :)
malheureusment 'jai pas tout saisi :( et c'était dans la cas d'un raccorci pour un menu .. moi c'est pour un boutton.
 
 :bounce:

n°67752
Carbon_14
Posté le 26-10-2001 à 15:59:58  profilanswer
 

Sauf erreur (je suis pas tj bien réveillé), si on met une éperluette (&) dans le label du bouton, ça marche comme avec un menu. Le résultat est un soulignement du caractère qui suit le &. Si on tape ALT + la lettre qui est soulignée dasn le bouton, ça fait comme si on l'avait cliqué.
 
bouton "&Action" donne [s]Action. ALT + A provoque l'action....
Attention à ne pas avoir les mêmes lettres sur deux boutons/contrôles/cases à cocher/.. sinon le "premier" obéit.
 
Les accélérateurs menu permettent de provoquer une action SANS QUE LE MENU ne soit déroulé. CTRL+C copie (si on a prévu de copier dans le code), CTRL+.. fait ce qu'on veut (ou devrait  :D).

n°67753
Kouye
Posté le 26-10-2001 à 16:03:25  profilanswer
 

oui j'ia aussi essayé le truc du "&" mais c pas top car je voudrai avoir une touche qui n'apparaisse pas ! :)
 
je vais continuer a chercher ..

n°67757
Carbon_14
Posté le 26-10-2001 à 16:15:11  profilanswer
 

Dans ce cas là, faudrait le créer en "soft" par interception du message de frappe de touche du clavier.
Le raccourci menu, on peut le charger dans un accélérateur et c'est Windows qui le gère pour nous, ou on le décode soi-même.
 
WM_KEYDOWN je crois. (C pur, pas ++ (<- y connais rien))
J'avais écrit deux fonctions pour CTRL et MAJ, ça vaut ce que ça vaut mais ça marche (pour moi :D).
 
BOOL CTRL(void)
{
// retourne TRUE si touche CTRL enfoncée
//          FALSE sinon
 
    int   CTRL;
 
    CTRL = GetKeyState(VK_CONTROL); // 1 si rien, -127 ou -128 si enfoncé
 
    return ((CTRL & 128) == 128);
}
// fin module CTRL
 
 
BOOL MAJUS(void)
{
// retourne TRUE si touche MAJUSCULE enfoncée
//          FALSE sinon
 
    int MAJ;
 
    MAJ = GetKeyState(VK_SHIFT); // 1 si rien, -127 ou -128 si enfoncé
 
    return ((MAJ & 128) == 128);
}
// fin module MAJUS
 
J'utilise, après test WM_KEYDOWN
     switch (wParam)
     {
       case 'C': // C : Curseur Outils, + CTRL : Copier sélection
  if (CTRL() == TRUE)
         {
    CommandeMenus(hWndMain, (WPARAM)MNEDIT_CPSL);
  }
         else
    PostMessage(Barre.hWnd, (WM_USER + 6), 0, (long)BTO_CURS);
 
Suffit d'y "télécommander" l'action associée au bouton et ça roule... :)  
 :)          break;

n°67758
Kouye
Posté le 26-10-2001 à 16:43:36  profilanswer
 

merci pr ton aide .. je vais m'y repencher ce soir .. :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VC++] Accelerator ...comment faire ?

 

Sujets relatifs
[Visual C++] Accelerator (raccourcis) 
Plus de sujets relatifs à : [VC++] Accelerator ...comment faire ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR