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);

  • 相关阅读:
    Lambda表达式、依赖倒置
    ASP.NET vNext 概述
    Uname
    RHEL4 i386下安装rdesktop【原创】
    Taxonomy of class loader problems encountered when using Jakarta Commons Logging(转)
    How to decompile class file in Java and Eclipse
    先有的资源,能看的速度看,不能看的,抽时间看。说不定那天就真的打不开了(转)
    Google App Engine 学习和实践
    【VBA研究】VBA通过HTTP协议实现邮件轨迹跟踪查询
    js正則表達式语法
  • 原文地址:https://www.cnblogs.com/ddgg/p/1775916.html
Copyright © 2011-2022 走看看