3.5 菜单资源

菜单分类

  • 窗口的顶层菜单
  • 弹出式菜单(鼠标右键的那些选项,记事本窗口左上角点击“文件”弹出的这些)
  • 系统菜单(记事本左上角的图标)
    HMENU类型表示菜单,ID表示菜单项

资源相关

  • 资源脚本文件:*.rc文件
  • 编译器:rc.exe
    在这里插入图片描述

菜单资源使用

  • 添加菜单资源(不需要写代码)
  • 加载菜单资源
    1.注册窗口类时设置菜单
    2.创建窗口传参设置菜单
    3.在主窗口WM_CREATE消息中利用SetMenu函数设置菜单

加载菜单资源:

LoadMenu函数的主要作用是从与应用程序实例关联的可执行文件(.EXE)中加载指定的菜单资源

HMENU LoadMenu(
	HINSTANCE hInstance,	//handle to module
	LPCTSTR lpMenuName		//menu name or resource identifier
	);

参数说明

  • hInstance: 包含要加载的菜单资源的模块的句柄。
  • lpMenuName: 菜单资源的名称。这个参数可以是资源标识符或者使用 MAKEINTRESOURCE 宏创建的值。

返回值

  • 如果函数成功,返回菜单资源的句柄(HMENU)。
  • 如果函数失败,返回值为NULL。可以调用 GetLastError 获取详细的错误信息。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

看看硬盘上的变化

在这里插入图片描述
在这里插入图片描述

加载菜单资源

注册窗口类时设置菜单

在这里插入图片描述
在这里插入图片描述

创建窗口传参设置菜单

在这里插入图片描述

在主窗口WM_CREATE消息中利用SetMenu函数设置菜单

在主窗口WM_CREATE消息中利用SetMenu函数设置菜单。

BOOL SetMenu(
  HWND hWnd,
  HMENU hMenu
);

参数说明

  • hWnd: 要设置菜单的窗口句柄。
  • hMenu: 要分配给窗口的菜单句柄。如果此参数为NULL,则会移除窗口当前的菜单。

返回值

  • 如果函数成功,返回非零值。
  • 如果函数失败,返回零。可以使用GetLastError函数获取更多错误信息。

功能描述

  • SetMenu函数的主要作用是将指定的菜单分配给一个窗口。这个操作会替换窗口当前的菜单(如果有的话)。通过这个函数,你可以动态地更改窗口的菜单,实现菜单的动态管理和更新。
    在这里插入图片描述

命令消息处理

WM_COMMAND消息

  • 下情况下发送:
    1.用户从菜单中选择一个命令项。
    2.控件向其父窗口发送通知消息。
    3.加速键(快捷键)被转换时。

  • 附带信息
    wPARAM:
    HIWORD - 对于菜单为0
    LOWORD - 菜单项的ID
    lPARAM - 对于菜单为0

菜单项状态

在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦里捡到一只猫丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值