J'essaye d'accomplir ceci dans Win32, mais je suis sûr que les mêmes règles s'appliquent dans le monde de WinForms.Lors de l'initialisation d'une fenêtre principale win32, quel est le meilleur moment pour afficher un dialogue modal?
Q: Je crée ma fenêtre principale, puis, lorsqu'elle est affichée, je souhaite afficher une boîte de dialogue modale. Le problème est; comment puis-je savoir quand la fenêtre principale est complètement initialisée et visible? C'est, exactement quand est le meilleur moment pour montrer le dialogue?
idées:
1) une poignée WM_CREATE
et comme étape finale PostMessage(WM_USER_MESSAGE)
. Manipuler WM_USER_MESSAGE
et montrer le dialogue modal!
2) Saisissez WM_CREATE
et réglez une temporisation à ~ 300 ms. Manipuler WM_TIMER
, tuer la minuterie et afficher la boîte de dialogue modale!
3) Gérer WM_ACTIVATE
, si première activation PostMessage(WM_USER_MESSAGE)
. Manipuler WM_USER_MESSAGE
et montrer le dialogue modal!
4) Saisissez WM_SHOWWINDOW
, si la boîte de dialogue modale du show show s'affiche pour la première fois!
Les approches ci-dessus fonctionnent, mais le résultat n'est pas toujours bon. Y a-t-il une meilleure méthode? Peut-être gérer les messages WM_ENTERIDLE
ou WM_KICKIDLE
d'une manière ou d'une autre?