MFC软件工程架构模型-模式窗口-非模式窗口

1. SDI单文档界面;

  MDI多文档界面.有多个"关闭-最大化-最小化"等这样的窗口嵌套

  基于对话框的软件模型

2.模式对话框和非模式对话框

模式对话框:使用DoMoel(),弹出一个新界面,但是主界面不能再操作(栈内申请,临时)

非模式对话框:弹出新的界面,背后的界面依然可以使用(要使用指针-堆内申请)

  CChatDlg *pDlg = new CChatDlg ;

  pDlg ->Creat(IDD_窗口_ID);//创建一个窗口-加第二个参数GetDesktopWindow()可以让该窗口独立,即在任务栏可以看到的

  pDlg ->showwindow(SW_SHOW);

3.GetDlgItem(ID_DLG)获取这个窗口的指针,参数可以使按钮控件指针

SetWindowText("哈哈");设置窗口名字

SetDlgItemText(IDC_BUTTON,"按钮");

ShowWindow(SW_HIDE);//隐藏窗口

4.非模式对话框:一般的点击关闭窗口只是调用EndDialog();类似隐藏,真正关闭摧毁窗口调用onDestory();-DestoryWindoe();

5.OnOK();0nInitDlg();等函数可以直接添加,不用映射,因为基类定义这些都为虚函数,继承下来再次定义直接覆盖

 6.Creat创建一些控件都是可以的

m_wnd.Creat("EDit","",***,);//具体入参,查mdn

7.避免空指针

判断指针时if(pWnd->GetSafeHwnd()){}

原文地址:https://www.cnblogs.com/fx427103/p/4033716.html