C++Windows应用程序创建菜单
时间: 2023-09-15 09:17:34 浏览: 42
要在C++ Windows应用程序中创建菜单,您可以按照以下步骤进行操作:
1. 在Visual Studio中打开您的项目,并打开资源编辑器。
2. 在资源编辑器中创建一个新的菜单资源,并为其指定一个ID。
3. 在您的应用程序中的窗口类中添加一个成员变量,用于保存菜单的句柄。
4. 在窗口类的消息处理函数中添加对WM_CREATE消息的处理代码。在这个处理函数中,使用CreateMenu()函数创建一个新的菜单。然后,使用AppendMenu()函数向菜单中添加菜单项,并设置每个菜单项的ID。
5. 使用SetMenu()函数将新创建的菜单设置为窗口的菜单。如果您的窗口类派生自CFrameWnd类,则可以使用CFrameWnd::SetMenu()函数来实现此操作。
6. 在窗口类的消息处理函数中添加对WM_COMMAND消息的处理代码。在这个处理函数中,根据命令ID执行所需的操作。
以下是一个示例代码,演示如何在C++ Windows应用程序中创建菜单:
```cpp
class CMyWindow : public CFrameWnd
{
public:
CMyWindow()
{
// 创建菜单
m_hMenu = CreateMenu();
AppendMenu(m_hMenu, MF_STRING, ID_FILE_OPEN, _T("打开"));
AppendMenu(m_hMenu, MF_STRING, ID_FILE_SAVE, _T("保存"));
// 将菜单设置为窗口菜单
SetMenu(m_hMenu);
}
afx_msg void OnFileOpen()
{
// 打开文件操作
}
afx_msg void OnFileSave()
{
// 保存文件操作
}
DECLARE_MESSAGE_MAP()
private:
HMENU m_hMenu;
};
BEGIN_MESSAGE_MAP(CMyWindow, CFrameWnd)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
ON_COMMAND(ID_FILE_SAVE, OnFileSave)
END_MESSAGE_MAP()
```
在这个示例中,我们创建了一个新的菜单,其中包含两个菜单项:“打开”和“保存”。然后,我们将菜单设置为窗口的菜单,并使用ON_COMMAND宏将每个菜单项与窗口类中的消息处理函数关联起来。当用户选择“打开”菜单项时,将调用OnFileOpen()函数,当用户选择“保存”菜单项时,将调用OnFileSave()函数。