zoukankan      html  css  js  c++  java
  • 对话框的创建和显示

    越来越不喜欢MFC,里边纵横交错的消息、句柄、指针、DC、缓存……

    简直不要太乱。

    突然忘了怎样显示非模态对话框……于是有了这篇MFC小白科普笔记

    1、创建模态对话框实例并显示

          CMyDialog   Dlg ;

          Dlg.DoModal();

    也就是说只需要调用对话框类的DoModal()即可实现创建并显示模态对话框。

    2、创建非模态对话框实例并显示

    方法一:设使用CMyDialog类的CUser,定义和实现CUser的文件分别是 User.h和User.cpp,定义(或者说声明)对话框类CMyDialog的文件是MyDialog.h,对话框类的资源ID是IDD_MYDIALOG.

    则,首先在User.h中添加 #include “MyDialog.h” ,然后声明一个类的实例CMyDialog   Dlg,    注:若是类的成员则应在相应构造函数中初始

          再在User.cpp中:                    

    if (!Dlg.m_hWnd)
    {
       Dlg.Create(IDD_MYDIALOG); //创建对话框

    }

    Dlg.ShowWindow(SW_SHOW);//显示对话框窗口

    CWnd::ShowWindow(SW_SHOW);

    创建和显示完成。

    另外要手动在工程中添加一个有界面的类,常常需要完成的步骤:

    1.继承一个窗口类(通常用CDialogEx)

    2.声明DECLARE_DYNAMIC(CXXDlg);

    3.添加IMPLEMENT_DYNAMIC(CXXDlg, CDialogEx);

    4.声明DECLARE_MESSAGE_MAP()

    5.添加消息映射

    BEGIN_MESSAGE_MAP(CXXDlg, CDialogEx)
      ON_CONTROL_RANGE(BN_CLICKED, IDC_CHECK1, IDC_CHECK5, &OnBnClickedCheck)
    END_MESSAGE_MAP()

    6.以上基本完成了,不过通常会添加virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持

  • 相关阅读:
    使用echo $? 查看命令成功执行的原理
    Ubuntu 12.04下NFS安装配置图解
    使用nfsstat命令查看NFS服务器状态
    ORACLE 中rownum和row_number()的使用区别(可指定取sql结果集的第几个数据)
    toad调用存储过程,存储过程调用sql 类
    指纹协查统计sql
    oracle 解锁表
    【转】经典排序算法
    wget 命令用法详解
    Linux 带宽、CPU、内存占用情况
  • 原文地址:https://www.cnblogs.com/ice-arrow/p/13712952.html
Copyright © 2011-2022 走看看