2010-06-19 5 views
2

Win32에서이 작업을 수행하려하지만 동일한 규칙이 WinForms의 세계에 적용됩니다.메인 윈도우 win32를 초기화 할 때 모달 대화 상자를 표시하는 가장 좋은시기는 언제입니까?

Q : 주 창을 만든 다음 표시 될 때 모달 대화 상자를 표시하려고합니다. 문제는; 기본 창이 완전히 초기화되고 표시되는 것을 어떻게 알 수 있습니까? 즉, 정확히 언제 대화를 표시 할 가장 좋은 시점입니까?

아이디어 :
1) WM_CREATE을 처리하고, 최종 단계로서 PostMessage(WM_USER_MESSAGE). WM_USER_MESSAGE을 처리하고 모달 대화 상자를 표시하십시오!
2) WM_CREATE을 처리하고 ~ 300ms에서 타이머를 설정하십시오. WM_TIMER을 처리하고 타이머를 종료하고 모달 대화 상자를 표시하십시오!
3) 첫 번째 활성화 인 경우 WM_ACTIVATE을 처리하십시오. PostMessage(WM_USER_MESSAGE). WM_USER_MESSAGE을 처리하고 모달 대화 상자를 표시하십시오!
4) 첫 번째 쇼 쇼 모달 대화 상자 인 경우 WM_SHOWWINDOW을 처리하십시오!

위의 접근 방식은 효과가 있지만 결과가 항상 좋은 것은 아닙니다. 더 좋은 방법이 있습니까? 아마도 어떤 식 으로든 WM_ENTERIDLE 또는 WM_KICKIDLE 메시지를 처리할까요?

답변

0

예. 정확히 대화 상자를 표시하는 가장 좋은 시간은 다음과 같습니다

당신은 WM_CREATE를 처리하고 창 핸들이 기능을 사용하여 유효를 확인할 수 있습니다

:: GetSafeHwnd(m_hwnd) 

를 우리가 그 시간에 모달 대화 상자를 표시 할 수 있습니다.