zoukankan      html  css  js  c++  java
  • MFC创建子窗口及使用

    1、在资源视图对话框中新建一个Dialog

    2、进入Dialog视图界面,右键单击添加类,此步骤是添加属于此对话框的类,就像主窗口的类对应于主对话框一样的关系

    3、添加子对话框的初始化函数 界面上右击->添加虚函数OnInitDialog,把需要初始化的东西放在里面

    例如:新建的一个子对话框类名叫MFCListDlg

    MFCListDlg.h
     1 #pragma once
     2 
     3 
     4 // MFCListDlg 对话框
     5 
     6 class MFCListDlg : public CDialogEx
     7 {
     8     DECLARE_DYNAMIC(MFCListDlg)
     9 
    10 public:
    11     MFCListDlg(CWnd* pParent = NULL);   // 标准构造函数
    12     virtual ~MFCListDlg();
    13 
    14 // 对话框数据
    15     enum { IDD = IDD_LISTTEST };
    16 
    17 protected:
    18     virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
    19 
    20     DECLARE_MESSAGE_MAP()
    21 protected:
    22     HICON m_hIcon;
    23 public:
    24     virtual BOOL OnInitDialog();
    25 };
    MFCListDlg.cpp
     1 // MFCListDlg.cpp : 实现文件
     2 //
     3 
     4 #include "stdafx.h"
     5 #include "MFCTest.h"
     6 #include "MFCListDlg.h"
     7 #include "afxdialogex.h"
     8 
     9 
    10 // MFCListDlg 对话框
    11 
    12 IMPLEMENT_DYNAMIC(MFCListDlg, CDialogEx)
    13 
    14 MFCListDlg::MFCListDlg(CWnd* pParent /*=NULL*/)
    15     : CDialogEx(MFCListDlg::IDD, pParent)
    16 {
    17     m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    18 }
    19 
    20 MFCListDlg::~MFCListDlg()
    21 {
    22 }
    23 
    24 void MFCListDlg::DoDataExchange(CDataExchange* pDX)
    25 {
    26     CDialogEx::DoDataExchange(pDX);
    27 }
    28 
    29 
    30 BEGIN_MESSAGE_MAP(MFCListDlg, CDialogEx)
    31 END_MESSAGE_MAP()
    32 
    33 
    34 // MFCListDlg 消息处理程序--重载的对话框初始化函数
    35 BOOL MFCListDlg::OnInitDialog()
    36 {
    37     CDialogEx::OnInitDialog();
    38 
    39     SetIcon(m_hIcon, TRUE);            // 设置大图标
    40     SetIcon(m_hIcon, FALSE);        // 设置小图标
    41 
    42     CenterWindow();//将窗口显示在正中央
    43 
    44     return TRUE;
    45 }

    4、在主对话框中使用子对话框

    ①在主对话框的类中建立一个子对话框的对象

    MFCListDlg m_ListDlg;

    ②在主对话框的OnInitDialog初始化函数中添加创建窗口语句

    m_ListDlg.Create(MFCListDlg::IDD, this);

    ③在需要使用的地方使用语句

    m_ListDlg.ShowWindow(SW_SHOW);

    ④在需要销毁窗口的地方使用语句

    m_ListDlg.DestroyWindow();

  • 相关阅读:
    版本控制-搭建git服务器
    借助阿里AntUI元素实现两个Web页面之间的过渡——“Loading…”
    在VS中自定义代码段
    案例研究:CopyToAsync
    与其他.Net异步模式和类型进行互操作
    使用boilerplate模版创建解决方案
    实践基于Task的异步模式
    实现基于Task的异步模式
    基于Task的异步模式的定义
    基于Task的异步模式--全面介绍
  • 原文地址:https://www.cnblogs.com/LYF-LIUDAO/p/8984343.html
Copyright © 2011-2022 走看看