在工程文件下右键-添加-资源,
选择menu 新建即可进入可视化的菜单资源编辑,
我们可以看到在头文件下多出一个resource.h的头文件,
资源文件下看到多出一个扩扩展名为.rc的资源文件,可将它拖到源文件下。
******************************************************************************************
*发现resource.h头文件打开的情况下进入重新编辑打开我们的菜单"***.rc"
会出现一个"在另一个编辑器中打开"的错误,先将头文件resource.h关掉即可。
*****************************************************************************************
加载菜单:(转自:*点击打开链接*)
第一种加载方式(类设计时):
WNDCLASS wndclass;
....
wndclass.lpszMenuName=MAKEINTRESOURCE(IDR_MENU1);
//这里省略了窗体类创建时需要填写的其他信息.
第二种加载方式(窗体创建时):
HMENU hmenu;
WNDCLASS wndclass;
....
wndclass.lpszMenuName=NULL;
//这里省略了一些窗体类的必要信息填写,和注册窗口类等操作
//加载菜单到菜单句柄中
hmenu=LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1));
//在创建窗体时候载入菜单
hwnd=CreateWindow("text","hellow world",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,hmenu,hInstance,NULL);
HMENU hmenu;
WNDCLASS wndclass;
....
wndclass.lpszMenuName=NULL;
//这里省略了一些窗体类的必要信息填写,和注册窗口类等操作
//创建窗体
hwnd=CreateWindow("text","hellow world",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
//加载菜单到菜单句柄中
hmenu=LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1));
//动态的加载菜单到窗体中去
SetMenu(hwnd,hmenu);
************************************************************************************************
如何使用我们创建的菜单
在LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 函数中
switch(message)
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case ID_ADDNEW: //ID_ADDNEW 为我们创建的菜单下各menu的ID下同
//MessageBox(NULL,L"addNew",L"add", MB_OK);
break;
case ID_OPEN:
//MessageBox(NULL, L"Hello_string", L"szCaptionMain", MB_OK);
//CFileDialog();
//CFileDialog dlg(bOpen, "*.csv", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "CSV (逗号分隔符)(*.csv)|*.csv|All files (*.*)|*.*||");
break;
case ID_EXIT:
DestroyWindow(hwnd);//退出窗口
break;
}
}