2010-12-15 3 views
0

Je veux retarder l'initialisation d'une fenêtre dérivée de CDockablePane jusqu'à ce que la fenêtre soit réellement affichée. Si la fenêtre est simplement ancrée, alors WM_SHOWWINDOW est assez efficace, mais lorsque la fenêtre est en mode AutoHide, WM_SHOWWINDOW est imprévisible et je ne peux pas voir un événement qui indique que la sortie est terminée.MFC: existe-t-il un événement à détecter lorsqu'une fenêtre dérivée de CDockablePane a été ouverte en la déplaçant ou en l'affichant?

Un conseil?

Répondre

1

La solution que j'ai choisi est de remplacer les méthodes virtuelles CDockablePane::ShowPane pour quand IsAutoHideMode() est FALSE et CDockablePane::OnSlide pour quand ce n'est pas le cas.

0

Essayez d'outrepasser CDockablePane :: CheckStopSlideCondition, enregistrez bSlideDirection et la valeur de retour de la mise en œuvre de la classe de base quelque part

override CDockablePane :: OnTimer et vérifier les valeurs enregistrées après la mise en œuvre de la classe de base lorsque nIDEvent est AFX_AUTO_HIDE_SLIDE_OUT_EVENT:

note: AFX_AUTO_HIDE_SLIDE_OUT_EVENT n'est pas documenté et peut-être pas disponible dans les versions futures de MFC

+0

Merci pour le temps, même si je ne pense pas que ce soit la bonne solution. J'ai ajouté une réponse. – snowdude

Questions connexes