如题

解决方案 »

  1.   

    因为OnInitDialog之后,框架要调用ShowWindow(SW_SHOW)。所以在DoModal之前调用ShowWindow(SW_HIDE),不会有作用。这个问题应该放到WM_WINDOWPOSCHANGING的消息处理函数中去处理。
    做法是:
    在dialog类中声明一个变量比如:BOOL visible并在构造函数中初始化为FALSE.
    然后在上述消息的处理函数中这样:
    void CTest_deleteDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
    {
        if(!visible)
            lpwndpos->flags &= ~SWP_SHOWWINDOW;    CDialog::OnWindowPosChanging(lpwndpos);
    }启动时,dialog box就会隐藏。
    显示时:
    visible = true;
    ShowWindow(SW_SHOW);如果class wizard中没有这个消息,可以调整class info页的message filter项。