菜单是MFC编程中非常重要的一种资源,在MFC中添加菜单有两种方式,一种是以资源的形式静态添加,另一种是动态添加,本文简洁说明第一种形式 ,其步骤如下(从SDK的角度看各种类之间的联系,更容易理解MFC框架):
1 创建win32空项目;
2 添加一个前述初步教程中所示的源代码文件
3 选择菜单insert->resource->menu,添加一个菜单File,并添加一个子菜单New,编辑子菜单New的ID为:IDM_FILENEW
4 选择Project --> Add To Project --> Files 将Script1.rc 和resource.h加入项目.
代码如下:
#include <afxwin.h>
#include "resource.h"
class MFC_Tutorial_Window :public CFrameWnd
{
CMenu menu1; // menu1作为本窗口类的一个数据成员
public:
MFC_Tutorial_Window()
{
Create(NULL,"MFC Tutorial Part 1 CoderSource Window");
menu1.LoadMenu(IDR_MENU1); // 加载菜单资源,初始化菜单
SetMenu(&menu1); // 当前窗口以menu1为菜单,如果SetMenu函数参数为空,则表示无菜单(此函数用于设置窗口菜单)
}
void OnFileNew();
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP( MFC_Tutorial_Window, CFrameWnd)
ON_COMMAND(IDM_FILE_NEW,OnFileNew) // ON_COMMAND表示菜单消息、工具栏消息等命令消息
END_MESSAGE_MAP()
void MFC_Tutorial_Window::OnFileNew()
{
MessageBox("Clicked File->New");
}
class MyApp :public CWinApp
{
MFC_Tutorial_Window *wnd;
public:
BOOL InitInstance()
{
wnd = new MFC_Tutorial_Window();
m_pMainWnd = wnd;
m_pMainWnd->ShowWindow(1);
return 1;
}
};
MyApp theApp;