-
[MFC] click bouton
Bonjour,
je voudrais savoir comment écrire cette condition :
sur une dialog box, je dispose d'un bouton RUN (IDC : IDC_Run)
je voudrais que tant que je ne clique pas sur ce bouton le programme se mettre en pause.
do{
Pause
}while( je n'ai pas cliqué sur le bouton)
-
salut,
que veux tu dire par se mettre en pause ?
interdire des actions claviers/souris etc ?
:D
-
Non tout simplement que le programme se mette en attente de l'action "clique".
Mais si tu as une solution qui permette d'interdire lesactions claviers/souris je veux bien la voir également.
merci
-
oui tu peux essayer de capturer la souris sur le bouton ...
tu fais un SetCapture sur le bouton .
quand tu clics tu fais un ReleaseCapture
-
ok
et la méthode toute simple qui dit :
do{
EN ATTENTE
}while( je n'ai pas cliqué sur le bouton)
-
en fait je débute en MFC;
je voudrais également savoir quelle variable nous dit qu'on a cliqué sur ce bouton RUN (IDC : IDC_Run)
-
Bon je reprends pour repréciser un peu:
dans une dialogue modale les actions sont limitées a la dialog on ne peut pas aller ailleurs dans l'application (sdi/mdi).
ta solution de boucle va figer l'application voir faq:
http://c.developpez.com/faq/vc/?page...rk#PumpMessage
je ne comprends pas ta derniere question :
a chaque fonction de réponse correspondant à un clic bouton est associé un identifiant de bouton ,donc a priori si une fonction est appelée tu sais de quel identifiant viens la notification ...
:D
-
en fait j'ai faire une appli en mode console et maintenant je la passe en mode graphique.
en mode console j'utilise un getchar() pour mettre en attente l'appli. Ainsi quand on arrive sur le getchar(), tant que l'utilisateur ne presse pas un bouton l'appli reste bloqué.
je voudrais réaliser le même comportement en mode graphique, mais là c le bouton "RUN" qui remplace le bouton clavier
-
Tu ne peux appliquer une logique séquentielle issue d’un programme en mode console sur un programme Windows donc sur une logique événementielle, c’est contre nature.
En clair tu dois adapter ton programme et tes traitements à la logique de Windows et non pas l’inverse.
Mets toi a la place d’un utilisateur lambda habitué a windows, ton fonctionnement est il logique ?
En mode console tu dois attendre l’appui sur une touche pour continuer /aiguiller ton traitement.
Sous Windows un traitement peut être lancé par le clic d’un bouton.
Il n’y a pas d’attente à instaurer puisque c’est l’interface qui y pourvoit …
:D
-
en fait c une appli multi poste. Il y a une synchronisation. Et donc c bouton me permettrait de lancer la synchro une fois que tout les intervenant son ok.
donc il me faut une mise en attentant
-
Alors tu as peut être intérêt :
A mettre le bouton disable ou initialiser un variable local à la classe dialogue à false
Pour dire que le traitement est en attente de synchro lorsque l’utilisateur appui sur le bouton.
Le traitement de synchro multiposte peut être placé dans un thread quand la synchro est ok elle positionne la variable a true ou met le bouton de la dialogue enable …
:D