|
為了讓用戶等待的時候不至于閑著慌,我就弄了啟動畫面,用一個線程去啟動這個畫面,然后讓主進(jìn)程繼續(xù)初始化程序: // main dialog AfxBeginThread(InitProgramThread, this); ShowWindow(SW_HIDE); // init the toolbar initToolBar(); // init member variables initClassMemberVariables(); // init vedio play initVedioPlay(); 其中InitProgramThread代碼如下: UINT CUltrasonicSystemDlg::InitProgramThread(LPVOID param) { CWzdSplash wndSplash; wndSplash.Create(IDB_SPLASH); wndSplash.CenterWindow(); wndSplash.UpdateWindow(); Sleep(3000); ::PostMessage(AfxGetMainWnd()->GetSafeHwnd(),WM_SHOW_DIALOG,NULL,NULL); wndSplash.DestroyWindow(); return NULL; } 發(fā)送 WM_SHOW_DIALOG 后,調(diào)用函數(shù): LRESULT CUltrasonicSystemDlg::OnShowMainWindow(WPARAM wParam, LPARAM lParam) { ShowWindow(SW_MAX); return 0; } 程序啟動后,消息也會在子線程結(jié)束后發(fā)送給主線程,但是每次都是子線程里面的啟動畫面還沒有結(jié)束,主對話框就彈出來了,我上面明明把它隱藏了的。 |
|
|