菜单的分类
窗口顶层菜单:
弹出式菜单(标准叫法){下拉菜单:点击窗口顶层菜单形成的的下拉菜单、右键形成的}
系统菜单:操作系统提供的,每一个程序,左上角ICON都会有
菜单是容器,装的是菜单项,每个菜单项都有自己的ID
点击菜单项会产生 WM_COMMAND
WM_COMMAND[命令消息]
对于菜单,点击菜单项的时候,会产生WM_COMMAND
菜单时候 仅仅LOWORD(wParam) == ID,lParam 0;

菜单是容器,装的是菜单项,每个菜单项都有自己的ID
添加菜单一般分为两种办法:

  1. 一种是创建 .rc文件 [.rc文件不需要我们写,我们仅仅需要在通过IDE来进行编辑就可以了]
    (1) 直接利用LoadMenu 这个API导入,返回HMENU菜单句柄,在创建的时候赋值(注意 .rc 下面的menu Id)
    (2) 直接将 .rc 里面的menu id在创建 WNDCLASS 的时候进行赋值
    (3) 在 WM_CREATE 的时候SetMenu()[传入参数为(1)中产生的HMENU]
HMENU LoadMenu( //这个函数是通过加载存在的 .rc 文件通过 rc.exe 生成的 .res 的资源
HINSTANCE hInstance, //应用程序实例的句柄
LPCTSTR lpMenuName //菜单名称字符串或菜单资源标识符
);
SetMenu( //给某hWnd窗口设置menu 设置menu的时间有要求吗[需要在show之前设置,否则会导致鼠标进入一直忙碌等问题]
HWND hWnd,
HMENU hMenu
);
  1. 通过代码创建
    HWMND CreateMenu(); //这个函数没有参数,创建Menu之后我们需要通过句柄在menu里面填写菜单选项 ...