Accueil > Forum > > > > Raccourcis des menus dans une dialog
Raccourcis des menus dans une dialog
mardi 28 décembre 2004 à 08:45:57 |
Raccourcis des menus dans une dialog

Nebula
|
Bonjour, J'utilise une DIALOG déclarée dans les ressources de mon programme et appelée avec DialogBox. Cette boîte de dialogue disposant d'un menu, j'aimerais savoir comment m'y prendre pour gérer les raccourcis correspondants (par exemple, Ctrl+O => Ouvrir) ? Auparavant j'utilisais TranslateAccelerator, mais là je n'ai pas de pompe à messages... Merci d'avance pour votre aide.
|
|
mardi 28 décembre 2004 à 11:14:24 |
Re : Raccourcis des menus dans une dialog

BruNews
|
Réponse acceptée !
Mets un hook sur ta dialog et pour chaque cas qui correspond a tes menus tu envoies un PostMessage(hdlg, WM_COMMAND, monID, 0);
ciao... BruNews, MVP VC++
|
|
mardi 28 décembre 2004 à 14:42:46 |
Re : Raccourcis des menus dans une dialog

Nebula
|
Merci, je m'y met de suite (çà va être pratique çà tiens !)
|
|
mardi 28 décembre 2004 à 17:01:19 |
Re : Raccourcis des menus dans une dialog

Nebula
|
Bon j'ai mis mon hook local, et voici la procédure de hook (plus gérable que traiter manuellement les raccourcis) :
LRESULT CALLBACK MsgProc(INT nCode, WPARAM wParam, LPARAM lParam) { if (nCode == HC_ACTION) { TranslateAccelerator(hMainDlg, hMainAccel, (LPMSG) lParam); } return 0; }
Mais comment dire à l'application que le message a été traité (c'est à dire que quand MsgProc se termine, passer au message suivant si TranslateAccelerator a déjà fait le travail) ?
Par exemple, j'ai un bouton "&Bouh" et un menu "&Bouh\aCtrl+B". Quand je fais Ctrl+B, çà affiche une MsgBox (celle du menu, j'ai vérifié en regardant HIWORD(wParam) dans la DlgProc), puis une autre MsgBox (celle du bouton, cette fois) ! Ce qui est assez contrariant :-/
|
|
mardi 28 décembre 2004 à 17:35:06 |
Re : Raccourcis des menus dans une dialog

Nebula
|
J'ai trouvé un workaround, mais je ne sais pas si c'est très propre :
if (TranslateAccelerator(hMainDlg, hMainAccel, (LPMSG) lParam) != 0) { ZeroMemory(lParam, sizeof(MSG)); }
|
|
mardi 28 décembre 2004 à 17:48:45 |
Re : Raccourcis des menus dans une dialog

BruNews
|
Réponse acceptée !
Si on se sert d'un hook, on n'a pas besoin d'accelerator Table, c'est bien plus souple comme gestion et tu peux faire ce que tu veux. Un exemple ici: http://www.cppfrance.com/code.aspx?id=11007 ciao... BruNews, MVP VC++
|
|
mardi 28 décembre 2004 à 18:00:26 |
Re : Raccourcis des menus dans une dialog

Nebula
|
Aaah ouais, c'est carrément plus simple et efficace, en fait. Merci !
|
|
Cette discussion est classée dans : dialog, raccourcis, menus
Répondre à ce message
Sujets en rapport avec ce message
Desactiver le raccourcis clavier par defaut d'un dialog [ par SnOOpss ]
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 pushbutto
Simuler appui sur X (croix en haut à droite) ET Question sur Dialog [ par mahojul ]
Bonjour, Je développe en VC++ 6.0 sur un pc avec WinXP Pro SP3 et je suis un peu embêté ... (pour information, je sui
Dialog MFC d'une DLL dans une application non MFC [ par auwel ]
Voilà j'ai une dll (MFC partagée) qui contient une fonction permettant l'affichage d'une boîte de dialogue. Cette fonction fonctionne correctement si
Modifier les menus du lecteur SumatraPDF [ par Fx44 ]
Bonjour Je ne suis pas du tout programmeur, je n'y connais d'ailleurs pas grand'chose, mais ne sais pas trop à qui m'adresser : alors je poste ici, me
Problème pour mettre une Dialog Modale au premier plan [ par ZMJUVENTINO ]
Salut, je travaille sur Visual C++ 6Je voudrais à partir de mon application afficher une CDialog modale et qu'elle s'affiche absolument au premier pla
Webdav et hack affreux [ par pierreact ]
Bonjour, j'ai créé un logiciel qui entre autre utilise WNetUseConnection pour connecter windows a des partages webdav. Microsoft étant ce qu'il est,
Plusieurs raccourcis clavier [ par ringo44 ]
Bonjour j'aimerai savoir comment faire pour avoir 2 raccourcis clavier différents. Je m'explique dans une fenêtre j'ai déjà le raccourci suivant : m_h
ShowHTMLDialogEx + HTMLDLG_MODELESS modale ?! [ par HeavenForsaker ]
Bonjour,Je tente d'afficher une page HTML à l'intérieur d'une fenêtre, pour ce faire j'ai utilisé la fonction ShowHTMLDialogEx avec le flag HTMLDLG_MO
Modal Dialog Box, Bug ! [ par Hades53 ]
Bonjour à tous, je suis confronté à un petit problème, j'ai crée un dialog (style modal) mais quand j'utilise la fonction: DialogBox(), la boîte de di
Appeler du code après que la Dialog soit chargée [ par Nixeus ]
Bonjour à tous, Cela fais deux ans que je n'ai pas repratiqué de C++ en MFC? et j'ai beaucoup perdu. Je souhaite appeller du code une fois que me D
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|