Desactiver le raccourcis clavier par defaut d'un dialog
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013
-
20 févr. 2009 à 09:43
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013
-
24 févr. 2009 à 12:23
Bonjour, j'ai crée un dialog tout bete via un fichier ressource et par defaut window m'attribue le raccourcis clavier espace au tout premier pushbutton du dialog (ce qui me ferme l'application) et je ne peux pas mettre de boutton quitter. Je pourrais intercepter cette commande pour la rendre inoperante mais meme dans le dessin du dialog je me retrouve avec le boutton en question avec un cadre plus important que les autres et qui bouge lors de l'appuis sur espace.
Y a pas un style a rajouter pour eviter cela ?
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 20 févr. 2009 à 17:26
En fait mon probleme ce n 'est pas que la barre espace ferme mon programme, c'est que windows associe automatiquement le raccourcis espace a mon premier bouton du dialog quel qu'il soit.
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 20132 20 févr. 2009 à 19:57
Non, Windows n'associe pas le "racourci espace" à un bouton. C'est une histoire de focus. Le premier contrôle d'une dialogbox selon le Tab Order a le focus et si c'est un bouton, il est sélectionné donc l'appui sur espace l'active.
Arrange-toi pour modifier le Tab Order, ou si ce n'est pas ce que tu souhaites, attribue le focus à un autre contrôle lors de l'initialisation de la dialogbox (OnInitDialog ou WM_INITDIALOG).
Vous n’avez pas trouvé la réponse que vous recherchez ?
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 21 févr. 2009 à 13:58
En fait tu as raison, l'espace correspond bien au bouton qui a le focus (le dernier qur lequel j'ai appuyé) , il n'y a pas un moyen de desactiver ca ? Car au cours de l'utilisation de l'application une pression sur espace et tout peut arriver (un moyen plus simple que d'intercepter les commandes focus comme via les styles)
Par contre dans le dessin du dalog le premier bouton du dialog a toujours la bordure plus epaisse que les autres.
SnOOpss
Messages postés571Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 5 décembre 2013 24 févr. 2009 à 12:23
Bon rien a faire, j'ai vu la fonction AttachThreadInput et les hooks mais le truc le plus leger que j'ai pu trouver c'est ca.
case WM_COMMAND:
{
char texte[255];
//si c'est un boutton on supprime le focus
GetClassName((HWND)lParam,texte,256);
if (!lstrcmpi(texte,"Button")) {SetFocus(NULL);}