zoukankan      html  css  js  c++  java
  • VC对话框启动时隐藏

    这个问题其实网上有很多答案,但大多都不够简洁和完美,下面这个方法可能是最佳的。

    首先要在资源中将对话框属性的Visible勾选去除。


    修改项目App的实现文件,以笔者的一个名为AutoInstall的项目为例:

    AutoInstall.cpp
    BOOL CAutoInstallApp::InitInstance()
    {
        AfxEnableControlContainer();

        
    // Standard initialization
        
    // If you are not using these features and wish to reduce the size
        
    //  of your final executable, you should remove from the following
        
    //  the specific initialization routines you do not need.

    #ifdef _AFXDLL
        Enable3dControls();        
    // Call this when using MFC in a shared DLL
    #else
        Enable3dControlsStatic();    
    // Call this when linking to MFC statically
    #endif

        CAutoInstallDlg dlg;
        m_pMainWnd 
    = &dlg;
        
    int nResponse = dlg.DoModal();
        
    if (nResponse == IDOK)
        {
            
    // TODO: Place code here to handle when the dialog is
            
    //  dismissed with OK
        }
        
    else if (nResponse == IDCANCEL)
        {
            
    // TODO: Place code here to handle when the dialog is
            
    //  dismissed with Cancel
        }

        
    // Since the dialog has been closed, return FALSE so that we exit the
        
    //  application, rather than start the application's message pump.
        return FALSE;
    }

     修改为:

    AutoInstall.cpp
    BOOL CAutoInstallApp::InitInstance()
    {
        AfxEnableControlContainer();

        
    // Standard initialization
        
    // If you are not using these features and wish to reduce the size
        
    //  of your final executable, you should remove from the following
        
    //  the specific initialization routines you do not need.

    #ifdef _AFXDLL
        Enable3dControls();        
    // Call this when using MFC in a shared DLL
    #else
        Enable3dControlsStatic();    
    // Call this when linking to MFC statically
    #endif

        m_pMainWnd 
    = new CAutoInstallDlg;
        
    return ((CAutoInstallDlg *)m_pMainWnd)->Create(IDD_AUTOINSTALL_DIALOG);

        
    // Since the dialog has been closed, return FALSE so that we exit the
        
    //  application, rather than start the application's message pump.
        return FALSE;
    }

    由于程序运行后对话框根本不会显示,因此如果希望任务完成后自动退出,需要在程序中控制对话框自动关闭。

    可以在OnInitDialog()返回的地方插入一句:PostQuitMessage(0);

  • 相关阅读:
    MySQL "show users"
    MySQL
    A MySQL 'create table' syntax example
    MySQL backup
    MySQL show status
    Tomcat, pathinfo, and servlets
    Servlet forward example
    Servlet redirect example
    Java servlet example
    How to forward from one JSP to another JSP
  • 原文地址:https://www.cnblogs.com/ddgg/p/1775916.html
Copyright © 2011-2022 走看看