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 ).
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;