我在 WM_INITDIALOG 消息里响应ShowWindow(hDlg,SW_HIDE);没能成功,请问还有什么方法吗,用api实现。 

解决方案 »

  1.   

    这里没有成功,说明其他地方还有Show它的地方了。改Command,。
      

  2.   

    网上有关于这方面的介绍你看看 http://hi.baidu.com/zdbj/blog/item/07209618d441fcb14aedbc1f.html
      

  3.   

    DoModal的时候,会先Create,再ShowWindow,WM_INITDIALOG是Create的时候产生的,所以在这里处理是没有用的。你可以不调用DoModal,采用非模态方式,自己Create,但不调用ShowWindow。
      

  4.   

    重载WINDOWPOSCHANGING这个消息
    去掉SWP_SHOWWINDOW属性
    在调用ShowWindow(SW_HIDE)就会隐藏ShowWindow(SW_SHOW)显示afx_msg void OnWindowPosChanging(WINDOWPOS* lpwndpos);ON_WM_WINDOWPOSCHANGING()void CBlueToothDllDlg::OnWindowPosChanging(WINDOWPOS* lpwndpos)
    {
    if ((lpwndpos != NULL))
    {
    lpwndpos->flags &= ~SWP_SHOWWINDOW;   
    }
    CDialog::OnWindowPosChanging(lpwndpos);
    }