2009-03-19 8 views
0

Comment puis-je empêcher esc de fermer une boîte de dialogue?VC++: Comment empêcher esc de fermer une boîte de dialogue (pas mfc)

J'ai cherché ce sujet, mais tout ce que j'ai trouvé était pour MFC (Vous pouvez remplacer la fonction PreTranslateMessage dans MFC). mais mon programme est écrit dans Windows API, pas MFC.

J'ai essayé d'attraper tous les messages du clavier dans la procédure de dialogue, mais aucun d'entre eux ne fonctionne. J'ai également essayé d'utiliser le sous-classement dans la boîte de dialogue, mais cela n'a pas fonctionné aussi.

Comment est-ce que je pourrais faire cela? Merci.

Répondre

0

Vous pouvez déterminer si c'est dans le menu système assez facilement - consultez la section "valeur de retour" de this MSDN page pour voir comment.

Si vous ne pouvez pas déterminer si c'est à partir de la touche ESCAPE ou d'un bouton, vous pouvez toujours contourner cela en utilisant un identifiant différent pour votre bouton Annuler.

9

Gérez WM_COMMAND et vérifiez IDCANCEL. Ensuite, ne passez pas le contrôle à la procédure de fenêtre par défaut.

Questions connexes