之前寫的一個VC應用程序,是程序啓動時就直接出現在任務欄,
窗體不出現,等用戶點擊任務欄圖標再出現窗口。和一些防火牆什麼的軟件類似。
這種效果實現並不是很困難的,硬是找不到最好的。爲什麼呢?
首先,在網絡上找到的大部分說法都是:
這樣雖然可以實現效果,但是會在啓動瞬間快速顯示一下窗口,然後再隱藏。給人一種閃爍一下的感覺,
然後繼續在網上找,有些人建議可以先把窗口設成1X1大小,然後再點擊顯示的時候再還原成原來大小。但是不知道爲什麼我的程序做不到,調了1X1但是窗口大約有200x200大小()
終於在今晚找到了最好的解決方法:
首先在CBBBApp::InitInstance()去掉m_pMainWnd->ShowWindow(SW_SHOW); 這樣窗口就不會出現
然後在CMainFrame::OnCreate中加上AfxGetApp()->m_nCmdShow = SW_HIDE;
好了,終於可以完美解決這個閃爍的問題了。
PS:任務欄圖標使用的TrayIcon.cpp類,又是另外的話題了。