1. 程式人生 > >Tip of the day的bug

Tip of the day的bug

我建立了一個簡單的mdi應用程式,使用.BSF(自定義的文件副檔名)作為它的文件我儲存一個foo.bsf文件後,可以在資源管理器中雙擊該檔案開啟mdi應用程式同時開啟foo.bsf文件.但當我給mdi應用程式加上a tip of the day元件之後,從資源管理器中雙擊foo.bsf後,就會給我一個警告:ASSERT(::IsWindow(m_hWnd)),然後mdi應用程式就死那了.

當從dde啟動應用程式(例如:雙擊相關文件)時,"Tip of the Day"是有bug的.你可以看看函式"ShowTipAtStartup",它在"InitInstance"中呼叫,可以看到tip of the day作為一個模式對話方塊顯示,在處理其它訊息時它一直進行訊息迴圈你可心修改ShowTipAtStartup使其從dde啟動時不出現tip of the day.
 void CTipOfApp::ShowTipAtStartup(void)
        {
                // CG: This function added by 'Tip of the Day' component.

                CCommandLineInfo cmdInfo;
                ParseCommandLine(cmdInfo);

                if (
                        cmdInfo.m_bShowSplash &&
                        cmdInfo.m_nShellCommand != CCommandLineInfo::FileDDE
                        )
                {
                        CTipDlg dlg;
                        if (dlg.m_bStartup)
                                dlg.DoModal();
                }
        }
如果還有其它bug,你可以設定cmdInfo.m_nShellCommand的過濾.