添加窗体以及菜单弹出命令

来源:互联网 发布:php mysql增删改查 编辑:程序博客网 时间:2024/05/18 01:05

1.创建单文档类型的MFC AppWizard(exe)工程

2.通过菜单栏的"Insert"->"Resource... Ctrl+R",打开如下图所示的添加资源的窗体:

 

3.选中上图中的Dialog并且点击右边的New来创建一个窗体(或者通过双击左边列表中的Dialog)

   至此只是建立了一个独立的窗体,和整个工程没有弹出命令上的链接,也就是说这时候编译的

  工程是弹不出该窗体的

  双击刚刚添加的窗体空白部分会弹出如下的窗体:

即新添加的窗体必须对应一个类,这里我们直接点击OK后出现如下图:

 

在"Name"中填写:CTestDlg    系统会自动在下面的"File Name"填写为:TestDlg.cpp(源文件名)

若要修改请点击下面的"Change..."按钮.这里我们默认,然后再次OK回到工程编辑状态

 

并且要在MyboleView.cpp源文件中包含TestDlg.h这个头文件如下:

#include "stdafx.h"
#include "Mybole.h"

#include "MyboleDoc.h"
#include "MyboleView.h"
#include "TestDlg.h"

 

 

 

4.在工程的Resource标签中点开Menu文件夹,下面存在一个IDR_MAINFRAME的菜单

  双击后弹出如下图:

点开"帮助",在下拉菜单中右键选择属性添加一个菜单子项,

ID为:IDM_DIALOG

CAPTION为:对话框

 

5.然后再新添加的菜单子项上右键点击Class Wizard弹出:MFC Class Wizard对话框

  Project标签下选择Mybole

  Class Name下选择CMyboleView (这里选择视类是为了让先前创建的窗体之后会显示在客户编辑区域,而非包括工具栏的主窗体区域)

  object IDs下选择IDM_DIALOG

  在右边的Messages会显示两个消息:COMMAND,UPDATE_COMMAND_UI

  然后选中COMMAND点击右边的Add Function将COMMAND命令添加到类CMyboleView中

  本步骤实现的结果如下图:

6.切换到工程的FileView标签页下,打开工程的View源文件

即:MyboleView.cpp

在源代码的最后就是void CMyboleView::OnDialog()

在该函数下添加代码形成如下的函数:

void CMyboleView::OnDialog()
{
 // TODO: Add your command handler code here
 CTestDlg dlg;
 dlg.DoModal();
}

最后实现如上图所示.

 

 

本例取自<VC++深入详解>    P220的例子