Pb tabulation dans Visual C++

Résolu
cs_cecel Messages postés 17 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 avril 2006 - 14 sept. 2004 à 15:18
cs_cecel Messages postés 17 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 avril 2006 - 15 sept. 2004 à 11:41
Bonjour,

Je développe une appli sous Visual C++. Lorsque je visualise la boite dialogue la touche tabulation fonctionne dans l'ordre ou je l'ai défini, mais quand je génère la boite de dialogue la touche tabulation ne fonctionne plus.

Merci d'avance

8 réponses

marcelteam Messages postés 9 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 15 septembre 2004
15 sept. 2004 à 11:31
Il te faut le code suivant :
BOOL CMyDlg::PreTranslateMessage( msg )
{
if( IsDialogMessage( msg ) )
return TRUE;
else
return CWnd::PreTranslateMessage( msg );
}

@+ 8-)
3
marcelteam Messages postés 9 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 15 septembre 2004
14 sept. 2004 à 15:51
Vérifies que la propriété "tab stop" est validée pour chaque controle dans ta boite de dialogue.
@+ 8-)
0
cs_cecel Messages postés 17 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 avril 2006
14 sept. 2004 à 16:13
C'est déjà fait tous les "tab stop" sont paramétrer

@+ ;)
0
marcelteam Messages postés 9 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 15 septembre 2004
15 sept. 2004 à 08:59
N'as tu pas une boucle de code qui monopolise le CPU ? Auquel cas il faudrait laisser le temps à windows de traiter les messages
venant de ta boîte de dialogue avec quelque chose du genre :

MSG message; // Windows message

...
// process WM_ messages
while (::PeekMessage(&message, NULL, 0, 0, PM_REMOVE))
{
::TranslateMessage(&message);
::DispatchMessage(&message);
}

@+ 8-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_cecel Messages postés 17 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 avril 2006
15 sept. 2004 à 09:31
T'a raison, j'utilise la fonction "PreTranslateMessage(..)".
Lorsque je l'enlève ça marche.
comment faire pour laisser le temps à windows de traiter les messages?

merci
@+ ;)
0
marcelteam Messages postés 9 Date d'inscription mercredi 18 août 2004 Statut Membre Dernière intervention 15 septembre 2004
15 sept. 2004 à 10:00
Si tu as réécrit la fonction "PreTranslateMessage()" dans ton appli, tu dois appeler dedans celle de la classe mère
CWinApp::PreTranslateMessage

@+ 8-)
0
cs_cecel Messages postés 17 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 avril 2006
15 sept. 2004 à 10:23
C'est ce que je fais :
voici ma fonction :

BOOL CConditionnementDlg::PreTranslateMessage(MSG* pmsg)
{
.....
return CWnd::PreTranslateMessage(pmsg);
}

mais ca ne marche pas.

@+ ;)
0
cs_cecel Messages postés 17 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 27 avril 2006
15 sept. 2004 à 11:41
Ok ça marche.

Merci de ton aide.

@+ ;)
0
Rejoignez-nous