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);
    
  • 相关阅读:
    设计模式-解释器模式
    安卓运行环境(四)
    安卓创建应用窗口(三)
    微型 ORM 的第二篇 DapperLambda性能测试[Dapper比较篇]
    微型 ORM 的第一篇 DapperLambda发布
    visual studio 2013 使用IIS Express附加调试MVC5
    数据库常用查询语句写法(优化)
    Windows Server 2008通过计划任务定时执行bat文件
    第一章 Memcached安装
    第四章 LINQ to SQL基本用法
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1990802.html
Copyright © 2011-2022 走看看