zoukankan      html  css  js  c++  java
  • Win32 对话框(1)

    4.1 如何创建模式对话框

    DoModal方法

    void CMainFrame::OnShowDlg()
    {
        //创建对话框对象
        CDemoDlg* pDlg = new CDemoDlg();
    
        //显示对话框窗口
        pDlg->DoModal();
    
        //删除对话框对象
        delete pDlg;
    }
    

    4.2 如何创建非模式对话框

    1. Create
    2. ShowWindow
    void CMainFrame::OnShowDlg() 
    {
        //创建对话框对象
        CDemoDlg* pDlg = new CDemoDlg();
    
        //创建对话框窗口
        pDlg->Create(IDD_DEMO, this);
    
        //显示对话框窗口
        pDlg->ShowWindow(SW_SHOW);
    
        //居中显示
        pDlg->CenterWindow();
    }
    

    4.3 如何关闭模式对话框

    1. EndDialog
    void CDemoDlg::OnCloseDlg() 
    {
        AfxMessageBox(_T("关闭模式对话框。"));
    
        //关闭对话框
        EndDialog(IDOK);
    }
    

    4.4 如何关闭非模式对话框

    DestroyWindow,跟其他窗体一样

    void CDemoDlg::PostNcDestroy() 
    {
        //删除对话框对象
        delete this;        
    }
    
    void CDemoDlg::OnCloseDlg() 
    {
        AfxMessageBox(_T("关闭非模式对话框。"));
    
        //销毁对话框窗口
        DestroyWindow();
    }
    

    4.5 如何在模式对话框中使用OK和Cancel按钮

    IDOK和IDCANCEL为内置的按钮标识

    void CDemoDlg::OnOK() 
    {
        //获得并检验对话框数据
        if (!UpdateData(TRUE))
        {
            return;
        }
    
        if (m_nEdit <= 1)
        {
            AfxMessageBox(_T("请输入一个大于1的数。"));
            return;
        }
        
        AfxMessageBox(_T("IDOK"));
    
        //关闭对话框
        EndDialog(IDOK);
    }
    
    void CDemoDlg::OnCancel() 
    {
        AfxMessageBox(_T("IDCANCEL"));
    
        //关闭对话框
        EndDialog(IDCANCEL);    
    }
    

    4.6 如何在非模式对话框中使用OK和Cancel按钮

    同上,关闭方法不同

    void CDemoDlg::OnOK() 
    {
        //获得并检验对话框数据
        if (!UpdateData(TRUE))
        {
            return;
        }
    
        if (m_nEdit <= 1)
        {
            AfxMessageBox(_T("请输入一个大于1的数。"));
            return;
        }
    
        AfxMessageBox(_T("IDOK"));
    
        //销毁对话框窗口
        DestroyWindow();
    }
    
    void CDemoDlg::OnCancel() 
    {
        AfxMessageBox(_T("IDCANCEL"));
    
        //销毁对话框窗口
        DestroyWindow();
    }
    

    4.7 如何在对话框中添加最大化和最小化按钮

    用ModifyStyle修改样式

    //添加WS_MAXIMIZEBOX和WS_MINIMIZEBOX风格
    ModifyStyle(0, WS_MAXIMIZEBOX|WS_MINIMIZEBOX);
    
  • 相关阅读:
    天心阁漫步
    大美湘江
    easyui tree基本操作
    盗墓笔记
    半年了
    文件上传控件值发生变化后自动提交表单
    宁静的夏夜
    今天您给别人让座,将来别人给您让座
    优先队列priority_queue 用法详解
    POJ2387
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1990802.html
Copyright © 2011-2022 走看看