2008-09-19 8 views
1

Comment utiliser les touches logicielles avec une application basée sur CDialog dans Windows Mobile 6 via MFC? J'ai une application professionnelle Windows Mobile 6 (écran tactile) basée sur CDialog sur laquelle je travaille. Le comportement par défaut d'une application basée sur CDialog dans WM6 Professional est de ne pas utiliser de touches programmables par défaut ... Je souhaite mapper les touches programmables sur les fonctionnalités "Annuler" et "OK" qui envoie IDOK et IDCANCEL à ma boîte de dialogue principale classe.Comment utiliser les touches programmables avec une application basée sur CDialog dans Windows Mobile 6 via MFC?

J'ai essayé de travailler avec CCommandBar sans succès, et SHCreateMenuBar ne fonctionnait pas pour moi non plus.

Est-ce que quelqu'un a un échantillon de comment faire fonctionner cela?

Merci.

Répondre

2

Qu'est-ce qui ne fonctionne pas avec CCommandBar? Vous devriez être en mesure d'ajouter un membre de CCommandBar à votre classe de dialogue, puis en vous appelez InitDialog teh DIALOG Créer et InsertMenuBar sur la barre de commande - quelque chose comme ceci:

m_cmdBar.Create(this); 
m_cmdBar.InsertMenuBar(IDR_MENU_RESRC_ID); 

Votre ressource de menu pourrait ressembler à ceci:

IDR_MENU_RESRC_ID MENU DISCARDABLE 
BEGIN 
MENUITEM "OK", IDOK 
MENUITEM "Cancel", IDCANCEL 
END 
0

merci beaucoup ... Je devenais fou avec cette ...

votre code a fonctionné exactement comme prévu ...

Au début, je nous l'a édité et a eu les mêmes résultats, la zone de touches logicielles serait vide à l'exception du bouton d'entrée SIP.

Après une heure de débogage j'essayé de mettre ces 2 lignes de code à la fin de mon OnInitDialog() et il a travaillé :)

Mon problème Ende dup étant que dans mon OnIitDialog() Je crée quelques boîtes de dialogue enfant. quand je mets le CCommandBar.InsertMenuBar() avant que je crée des boîtes de dialogue enfant je n'obtiens pas mes touches logicielles "ok" ou "Annuler", quand je mets cette ligne après la création des boîtes de dialogue enfant les touches affichent comme prévu et fonctionnent bien.

Merci encore

Questions connexes