使用菜单

一:创建菜单  

在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;
      }
    }
    //-----
  }

}

  

 

posted @ 2013-11-02 16:36  LOSER Z  阅读(296)  评论(0编辑  收藏  举报