【发布时间】:2015-05-09 03:04:42
【问题描述】:
我正在尝试学习一些基本的 win32 api。我看到添加项目到菜单栏教程已经提到使用类似的东西:
hMenubar = CreateMenu();
hMenu = CreateMenu();
AppendMenuW(hMenu, MF_STRING, IDM_FILE_NEW, L"&New");
AppendMenuW(hMenu, MF_STRING, IDM_FILE_OPEN, L"&Open");
AppendMenuW(hMenu, MF_SEPARATOR, 0, NULL);
AppendMenuW(hMenu, MF_STRING, IDM_FILE_QUIT, L"&Quit");
AppendMenuW(hMenubar, MF_POPUP, (UINT_PTR)hMenu, L"&File");
但是在 VS2013 的 C++ 桌面的默认项目中,有一个文件和帮助菜单栏,里面有退出和关于。但他们所做的只是在 WndProc 中有一个这样的开关:
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
我有几个问题。他们如何在不使用 createmenu() 等的情况下添加文件和帮助菜单栏,以及菜单栏中的 about 和 exit 项? IDM_ABOUT 和 IDM_EXIT 是什么意思?它们在菜单中有这些,但只是将它们放在 switch 语句中会将它们添加到菜单栏吗?什么是 wmId 和 wmEvent,为什么要打开 wmId?究竟是什么将这些项目添加到菜单栏?
如果您需要查看我的程序的更多代码,它只是 VS2013 中的非空白 C++ Win32 项目
感谢您提供的任何答案,如果有人能指出我当前尽可能好的 win32 api C++ 教程的方向,我们将不胜感激。
【问题讨论】:
-
and it would be appreicated if someone could point me in the direction of a good current as possible win32 api C++ tutorialCharles Petzold 的任何书。 -
非常感谢,我会检查一下