zoukankan      html  css  js  c++  java
  • Windows 编程[14] 菜单与菜单资源(三)

    前面我们分别使用过 MENU 和 MENUEX 来指定菜单资源, 我发现用 MENU 不必注意大小写; 但 MENUEX 在使用参数时需要注意大小写! 另外, 指定相同的功能时, 它们使用的参数和格式也有很大的区别. 我想还是多了解 MENUEX 吧, 因为它的参数同时也是 Win32API 菜单函数们 需要的!

    MENUEX 有四个参数, 分别是: 菜单文本, 菜单标识(整数), 菜单格式(常数: MFT_*), 菜单样式(常数: MFS_*).
    后两个参数都有系统预定义的常量, 列表如下:
    MFT_STRING       = 0;       {菜单项是字符串}
    MFT_BITMAP       = 4;       {菜单项用一个图片来代替(暂没测试)}
    MFT_MENUBARBREAK = $20;     {换列并有分列线}
    MFT_MENUBREAK    = $40;     {换列}
    MFT_OWNERDRAW    = $100;    {指定为物主菜单; 通过 WM_DRAWITEM 消息的申请可以绘制更复杂的菜单}
    MFT_RADIOCHECK   = $200;    {圆点代替 √ 来表示选择
    MFT_SEPARATOR    = $800;    {指定为分割线, 会忽略前面指定的菜单文本}
    MFT_RIGHTORDER   = $2000;   {右对齐}
    MFT_RIGHTJUSTIFY = $4000;   {显示在右边(帮助位置)}
    
    MFS_GRAYED        = 3;          {禁止使用, 灰度显示}
    MFS_DISABLED      = MFS_GRAYED; {同上}
    MFS_CHECKED       = 8;          {选择}
    MFS_HILITE        = $80;        {反色凸现}
    MFS_ENABLED       = 0;          {不禁止, 这是默认的, 一般用于程序中对禁止的反操作}
    MFS_UNCHECKED     = 0;          {不选择}
    MFS_UNHILITE      = 0;          {不反色}
    MFS_DEFAULT       = $1000;      {指定为缺省, 应该类似与缺省按钮(还没试过), 会加粗显示菜单文本}
    
    以上同类参数可以通过 "或" 运算来同时指定功能, 当然这里不能使用 Delphi 的 "or", 是用 C/C++ 的 "|" 运算符. 再举个例子:
    #define IDM_New   101
    #define IDM_Open  102
    #define IDM_Save  103
    #define IDM_Exit  104
    #define IDM_Cut   201
    #define IDM_Copy  202
    #define IDM_Paste 203
    #define IDM_About 301
    
    MYMENU1 MENUEX
    BEGIN
      POPUP "&File"        ,65535
      BEGIN
        MENUITEM "&New"    ,IDM_New  ,MFT_STRING | MFT_RIGHTORDER ,MFS_DEFAULT | MFS_CHECKED | MFS_GRAYED
        MENUITEM "&Open"   ,IDM_Open ,MFT_STRING, MFS_HILITE
        MENUITEM "&Save"   ,IDM_Save
        MENUITEM SEPARATOR
        MENUITEM "E&xit"   ,IDM_Exit
      END
      POPUP "&Edit"        ,65535
      BEGIN
        MENUITEM "Cu&t"    ,IDM_Cut
        MENUITEM "&Copy"   ,IDM_Copy
        MENUITEM "&Paste"  ,IDM_Paste
      END
      POPUP "&Help"        ,65535
      BEGIN
        MENUITEM "&About"  ,IDM_About
      END
    END
    
    显示效果图:



  • 相关阅读:
    Java Object-Oriented:day11 【 Inner Classes 】
    Java Object-Oriented:day11 【 final 】
    Java Object-Oriented:day10 【 Inheritance】
    Java Object-Oriented:day10 【 Interfaces】
    深入剖析Kubernetes学习笔记:StatefulSet-MySQL集群(20)
    Java Object-Oriented:day09 【 Inheritance、Abstract Classes】
    Java Object-Oriented:day09 【 Inheritance、super、this】
    kubernetes云平台管理实战:常用命令大全(十二)
    Java API:day08 【static、Arrays、Math】
    Java API:day08 【String】
  • 原文地址:https://www.cnblogs.com/del/p/1165322.html
Copyright © 2011-2022 走看看