Bonjour a tous!
Je cherche à ajouter un bouton de controle à une boite de dialogue seulement si l'operateur appuie sur la touche "Ctrl" et je n'y arrive pas. Je cherche depuis un moment et j'ai rien trouver de valable.
Merci de vos reponses.
Bonjour a tous!
Je cherche à ajouter un bouton de controle à une boite de dialogue seulement si l'operateur appuie sur la touche "Ctrl" et je n'y arrive pas. Je cherche depuis un moment et j'ai rien trouver de valable.
Merci de vos reponses.
Tu n'arrive pas à ajouter le contrôle ou tu n'arrives pas à détecter si la touche Ctrl est enfoncée ?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
En fait j'aurais voulu savoir comment on peut rajouter a l'ouverture de ma boite de dialogue un bouton de controle seulement si ma touche Ctrl est enfoncée. Par contre si ma touche n'est pas enfoncée je ne dois pas visualilser ce bouton. Je pense que c'est dans le "initdialog()" que je dois le realiser mais je sais pas comment.Envoyé par Médinoc
En MFC, je ne peux pas vraiment te dire.
En Win32, on crée le bouton avec CreateWindow() dans le traitement du message WM_INITDIALOG.
Sinon, il y a plus simple : Toujours créer le bouton, mais ne le rendre visible que si la touche Ctrl est pressée. Très facile.
PS: Pour savoir si une touche est actuellement enfoncée ou non, j'utilise GetAsyncKeyState().
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
"Sinon, il y a plus simple : Toujours créer le bouton, mais ne le rendre visible que si la touche Ctrl est pressée. Très facile."
C'est justement ca que j'aimerais bien faire mais je ne sais pas.
Tu le crées en invisible (dans ses propriétés si tu utilises l'éditeur de boîtes de dialogue) et tu fais ceci:
Code API Windows : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 case WM_INITDIALOG: if(GetAsyncKeyState(VK_CONTROL) & 0x8000) { ShowWindow(GetDlgItem(hWnd, IDC_MONBOUTON), SW_SHOW); }
Code MFC : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 //[redéfinition (déclarée virtuelle dans CDialog)] BOOL CMaDialog::OnInitDialog() { if(::GetAsyncKeyState(VK_CONTROL) & 0x8000) { //En supposant que le bouton soit lié à m_monBouton // en tant que contrôle m_monBouton.ShowWindow(SW_SHOW); } }
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager