zoukankan      html  css  js  c++  java
  • 使用菜单

    一:创建菜单  

    在Windows中使用菜单都是以关键字POPUP开头,POPUP指出了一个菜单可以使用如下的ASCII名称和菜单项来定义。弹出式菜单定义必须放在{}或BEGIN、END块中。

    例如:

    MainMenu MENU DISCARDABLE
    
      {
    
        POPUP "FIle"
          {
    
            MENUITEM "Open",MENU_FILE_ID_OPEN
            MENUITEM "Close",MENU_FILE_ID_CLOSE
            MENUITEM "Save",MENU_FILE_ID_SAVE
            MENUITEM "Exit",MENU_FILE_ID_EXIT
          }
        POPUP "Help"
          {
    
            MENUITEM "About",MENU_HLP_ABOUT
          }
      }
    

      这里定义菜单名为MainMenu

      菜单的定义块中,定义一个菜单项的语法是:MENUITEM "name",MENU_ID

      MENUITEM是关键字。

      当然还需要在resource.h添加MENU_ID的定义,如:

      #define MENU_FILE_ID_OPEN  1000

      #define MENU_FILE_ID_CLOSE  1001

      #define MENU_FILE_ID_SAVE  1002

      #define MENU_FILE_ID_EXIT   1003

      #define MENU_HELP_ABOUT    2000

    二、装载菜单

    WNDCLASSEX winclass;

    winclass.lpszMenuName=MAKEINTRESOURCE(MainMenu);    //这里的MainMenu就是之前定义的菜单名

    三、响应菜单事件消息

    这是窗口菜单选择消息流

    以下是消息处理程序

    LPESULT CALLBACK WindowProc(HWND hwnd,UINT msg,WPARAM wparam,LPARAM lparam){
    
      switch(msg){
    
        //-----
        case WM_COMMAND:
        {
    
          switch(LOWORD(wparam)){          //从wparam中提取低位的WORD
    
            case MENU_FILE_ID_OPEN:
              //do something
              break;
            case MENU_FILE_ID_CLOSE:
              //do something
              break;
            case MENU_FILE_ID_EXIT:
              //do something
              break;
          }
        }
        //-----
      }
    
    }
    

      

  • 相关阅读:
    NYOJ 734
    NYOJ 762
    NYOJ 743
    NYOJ 478
    NYOJ 451
    NYOJ 461
    NYOJ 485
    NYOJ 333
    平均互信息
    ASCII码
  • 原文地址:https://www.cnblogs.com/zjzsky/p/3403911.html
Copyright © 2011-2022 走看看