Comment désactiver CBitmapButton? J'ai essayé d'utiliser m_bitmapbutton.EnableWindow (false); mais ça ne marche pas. Il déclenche toujours un événement. Ce que j'essaie de faire est d'empêcher le bouton A de déclencher l'événement A si l'événement B est en cours d'exécution (à partir du bouton B). Ainsi, dans l'événement B, je veux désactiver le bouton A.Comment désactiver CBitmapButton?
Répondre
Voici une liste de choses à vérifier:
- Avez-vous défini une image pour l'état désactivé du bouton bitmap?
- Etes-vous sûr que l'événement est déclenché?
- L'événement B n'est pas dans un thread, n'est-ce pas?
- Faites-vous un m_bitmapbutton.EnableWindow (FALSE) au début de l'événement B et m_bitmapbutton.EnableWindow (TRUE) à la fin?
- Effectuez-vous une notification BN_CLICKED()? Ou est-ce peut-être une notification différente comme WM_LBUTTONDOWN Notification()?
- Etes-vous sûr que la variable m_bitmapbutton est correctement associée à votre bouton A? Pourriez-vous essayer avec GetDlgItem (IDC_BUTTON_A) -> EnableWindow (FALSE);
Vous pouvez toujours définir une variable membre booléenne pour indiquer que le bouton A est désactivé et ignorer tous les événements qui lui sont envoyés lorsque ce membre booléen est défini.
Il peut être plus facile d'utiliser this class from CodeProject.
Je suppose que le problème est que pendant que vous participez à l'événement B, les messages pour cette fenêtre ne sont pas distribués. Donc, ils sont mis en file d'attente et dispathched une fois que vous avez fini d'assister à l'événement B et vous avez activé le bouton A à nouveau. Quelque chose comme ça:
- OnBnClickedButtonB
- buttonA.EnableWindow (FAUX) (événements de souris pour la fenêtre sont mises en attente et non expédié)
- buttonA.EnableWindow (TRUE)
- ~ OnBnClickedButtonB (la répartition de l'application en file d'attente des événements de sorte que le bouton est à nouveau activé)
Ce n'est pas seulement un problème avec un CBitmapButton ... il devrait être avec tout autre bouton (je ne me suis pas essayé).
Une solution possible pourrait être la distribution des événements de souris pour cette fenêtre avant d'activer à nouveau le bouton ... bien que je n'aimais pas trop faire ce genre de thigs ... peut-être quelqu'un peut vous donner une meilleure solution:
void CMyDlg::OnBnClickedButtonB()
{
m_buttonA.EnableWindow(FALSE);
//Process button B clicked event
MSG msg;
while(PeekMessage( &msg,
GetSafeHwnd(),
WM_MOUSEFIRST,
WM_MOUSELAST,
PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
m_buttonA.EnableWindow(TRUE);
}
Espérons que cette aide!
Javier
- 1. Comment désactiver Microsoft.VisualStudio.TestTools.TestTypes.Unit.TestFailedException
- 2. Comment désactiver iphone UI?
- 3. Comment désactiver Response.Buffer
- 4. Comment désactiver un œuf?
- 5. Comment désactiver les objets Combobox?
- 6. C# Comment désactiver une touche
- 7. comment désactiver ces avertissements PHP?
- 8. as3: comment désactiver l'écouteur d'événements
- 9. Comment faire pour désactiver "periodically_call_remote"
- 10. Comment désactiver Draggables dans script.aculo.us
- 11. Comment désactiver la barre d'état?
- 12. Comment désactiver l'écran d'accueil netbeans?
- 13. Sharepoint 2007: Comment désactiver TextBox
- 14. Désactiver OpenMP
- 15. Comment désactiver les sons dans TortoiseSVN?
- 16. Comment désactiver un nœud dans l'arborescence Silverlight?
- 17. comment désactiver bulk_action dans django 1.1 beta
- 18. Comment désactiver/masquer l'icône d'un formulaire?
- 19. Comment désactiver les vues partielles ViewState?
- 20. Comment puis-je désactiver une contrainte?
- 21. Comment désactiver RewriteRule pour une sous-catégorie?
- 22. Comment désactiver Javascript pour l'utilisation de Selenium?
- 23. Comment désactiver le bouton dans UIActionSheet?
- 24. Héritage Python - comment désactiver une fonction
- 25. Comment désactiver Alt-Enter dans IE?
- 26. Comment désactiver coreLocation dans le simulateur iPhone?
- 27. Comment désactiver un draggable jquery-ui?
- 28. Comment désactiver le pooling de connexions psycopg2?
- 29. Comment désactiver viewstate pour de bon?
- 30. Comment désactiver/lire certaines cases d'une MultiCheckbox?
Oui aux deux questions. est-ce un bug? Y at-il d'autres options en plus d'utiliser la classe? –
Je pense que vous seriez mieux avec le bouton CodeProject –
L'événement B n'est pas dans un fil est-ce? Faites-vous un m_bitmapbutton.EnableWindow (FALSE) au début de l'événement B et m_bitmapbutton.EnableWindow (TRUE) à la fin? –