• MENUITEMINFO结构的翻译(转)


    MENUITEMINFO结构包含关于一个菜单项信息

    typedef struct tagMENUITEMINFO {
        UINT    cbSize; 
        UINT    fMask; 
        UINT    fType; 
        UINT    fState; 
        UINT    wID; 
        HMENU   hSubMenu; 
        HBITMAP    hbmpChecked; 
        HBITMAP    hbmpUnchecked; 
        DWORD   dwItemData; 
        LPTSTR  dwTypeData; 
        UINT    cch;

    HBITMAP     hbmpItem;
    } MENUITEMINFO, FAR *LPMENUITEMINFO;

    成员
    cbSize

            结构的大小,字节


    fMask
            
    检索或设置,这个成员可以使用一个或多个以下值.


             MIIM_CHECKMARKS 检索或设置hbmpCheckedhbmpUnchecked成员


             MIIM_DATA 检索或设置dwItemData成员 


             MIIM_ID 检索或设置wID成员


             MIIM_STATE 检索或设置fState成员


             MIIM_SUBMENU 检索或设置hSubMenu成员


             MIIM_TYPE 检索或设置fTypedwTypeData成员

    fType 
           
    菜单项类型.这个成员可以使用一个或多个这些值

     
         MFT_BITMAP  
    使用一个位图显示菜单项.dwTypeData低位字是该位图的句柄.并且cch被忽视.

         MFT_MENUBARBREAK  放置菜单项在新行上(适用于菜单栏)或在新列内(适用于下拉菜单,子菜单,快捷菜单).对于下拉菜单,子菜单,或快捷菜单,用垂直线分隔以前的列和新的列

         MFT_MENUBREAK  放置菜单项在新行上(适用于菜单栏)或在新列内(适用于下拉菜单,子菜单,快捷菜单).对于下拉菜单,子菜单,或快捷菜单,这个列不被垂直线分开  

         MFT_OWNERDRAW  分配责任到那个窗体菜单绘制自己的菜单项.在菜单第一次显示之前窗体收到一条WM_MEASUREITEM消息,和菜单项必须更新时收到一条WM_DRAWITEM消息。如果该值被指定,则dwTypeData成员包含一个应用程序定义的值。

         

        MFT_RADIOCHECK  如果hbmpChecked成员是NULL ,显示选中的菜单项使用一个单选按钮来代替一个复选标记

         MFT_RIGHTJUSTIFY  向右对齐菜单项和所有后来的项,如果菜单项在菜单栏内这个值才是唯一有效的

         MFT_RIGHTORDER  Windows 95, Windows NT 5.0,和随后的:指定那个级联菜单从右至左(默认的是左

                                                至右).这是支持习惯右至左的语言,比喻阿拉伯语的和希伯来语。

         MFT_SEPARATOR 指定那个菜单项是一个分隔条.一个分隔条菜单项显示为一条水平分隔线.

                                            dwTypeDatecch成员被忽视这个值在一个下拉菜单,子菜单,或快捷菜单才是有效的

         MFT_STRING     用一个文本字符串显示菜单项.dwTypeData成员指示一个以NULL结尾的字符串,并且cch

                                           成员是字符串的长度

     MFT_BITMAP, MFT_SEPARATOR, and MFT_STRING 任何一个值都不能相互组合使用,只有在设置了fMask

    MIIM_TYPE时才能使用fType

    fState
             
    菜单项的状态.这个成员可以是一个或多个的这些值
    :
     
             MFS_CHECKED 
    复选的菜单项.至于更多关于菜单项选中的信息,hbmpChecked成员
    .
     
             MFS_DEFAULT  
    指定默认的菜单项。一个菜单仅仅只可以包含一个默认的菜单项,用粗体显示。

     
             MFS_DISABLED
    菜单项无效并变灰使得它不能被选择.等效于MFS_GRAYED.
     
             MFS_ENABLED  
    激活菜单项使它可以被选择。这是默认的状态.

             MFS_GRAYED菜单项无效并变灰使得它不能被选择.等效于MFS_DISABLED.
     
             MFS_HILITE 
    菜单项高亮显示。

     
             MFS_UNCHECKED 
    取消复选菜单项.至于更多关于菜单项unchecked信息,看hbmpUnchecked成员变量

             MFS_UNHILITE 移除菜单项的高亮显示,这是默认状态.

     使用fState前应设置了fMaskMIIM_STATE标记。

    wID
               
    应用程序定义的16位的值用来标识菜单项只有在设置了fMaskMIIM_ID时才能使用

     
    hSubMenu
              
    菜单项相关联的下拉菜单或子菜单的的句柄。如果菜单项不是一个打开的下拉菜单或子菜单,那这个成员是NULL, 该项只有在设置了fMaskMIIM_SUBMENU时才能使用

    hbmpChecked
             
    菜单项被选中时显示在一侧的位图的句柄.如果这个成员是NULL,使用一个默认的位图.如果为fType指定了

              MFT_RADIOCHECK,这个默认的图片是子弹一样的图片。否则它是复选标记,该项只有在设置了fMaskMIIM_CHECKMARKS时才能使用。

     hbmpUnchecked

    菜单项没有被选中时显示在一侧的位图的句柄.如果这个成员是NULL,没有位图被使用,该项只有在设置了fMaskMIIM_CHECKMARKS时才能使用。

    dwItemData 
                 
    应用程序定义的菜单项相关联的值,该项只有在设置了fMaskMIIM_DATA时才能使用。

    dwTypeData 
                 
    菜单项的内容,它的具体意义依赖于fTYPE值,并且它只能在fMask设置了MIIM_TYPE标记时才能被使用;

    要检索一个MFT_STRING类型的菜单项,首先要得到该字符串的大小,通过设置MENUITEMINFO结构的dwTypeData值为空并调用函数GetMenuItemInfo得到的cch值就是字符串的大小,然后分配一个字符串大小的缓冲区,把指向缓冲区的指针存赋给dwTypeData并再次调用GetMenuItemInfo函数用字符串来填充缓冲区。如果检索其它类型的菜单项,GetMenuItemInfo函数会赋给dwTypeData一个类型由fType成员指定的值。当使用SetMenuItemInfo函数时,dwTypeData必须包含一个类型由fType成员指定的值,该项只有在设置了fMask成员的MIIM_STRING标记时才能使用。
     

    cch
             
    当检索一个MFT_STRING类型菜单项的信息时,为菜单项文本(TCHAR)的长度。这个成员只能在当设置了fMask成员的MIIM_TYPE标记时使用,否则为0。当菜单项的内容由函数SetMenuItemInfo设置时,这个成员将被忽略。

             在调用GetMenuItemInfo之前,程序必须由dwTypeData设置该成员为缓冲区的长度。 如果要检索的菜单项类型为MFT_STRING(fType成员指定),这时GetMenuItemInfo设置cch为被检索字符串的长度。如果检索的是其它类型的菜单项,GetMenuItemInfo设置cch的值为0

             该项只有在设置了fMask成员的MIIM_STRING标记时才能使用。

    hbmpItem

             菜单项上显示位图的句柄,它可能是以下标记中的一个,该项只有在设置了fMask成员的MIIM_BITMAP标记时才能使用。

    HBMMENU_CALLBACK

             一个由拥有该菜单的窗口绘制的位图。应用程序必须处理WM_MEASUREITEMWM_DRAWITEM消息。

    HBMMENU_MBAR_CLOSE

             菜单栏的关闭按钮

    HBMMENU_MBAR_CLOSE_D

             禁用菜单栏的关闭按钮

    HBMMENU_MBAR_MINIMIZE

             菜单栏的最小化按钮

    HBMMENU_MBAR_MINIMIZE_D

             禁用菜单栏的最小化按钮

    HBMMENU_MBAR_RESTORE

             菜单栏的还原按钮

    HBMMENU_POPUP_CLOSE

             子菜单的关闭按钮

    HBMMENU_POPUP_MAXIMIZE

             子菜单的最大化按钮

    HBMMENU_POPUP_MINIMIZE

             子菜单的最小化按钮

    HBMMENU_POPUP_RESTORE

             子菜单的还原按钮

    HBMMENU_SYSTEM

             Windows图标或是在dwItemData中由窗口指定的图标。

     

    备注:

             一个菜单可以用用文本和位图两种方式中的一种方式显示菜单项,而不能同时使用。
            MENUITEMINFO 结构体可以被GetMenuItemInfo, InsertMenuItem, and SetMenuItemInfo 函数使用

  • 相关阅读:
    查看当前系统的shell
    xargs命令,作用雷同|
    shell 行末尾的&含义
    apt-get 安装及卸载,dpkg查询安装文件
    Linux: mv and cp 拷贝不包含目录
    windows下远程连接ubunut
    Linux 清空屏幕
    PageHelper的一些属性设置
    HttpServletRequest
    铁电RAM为何比串行SRAM更好
  • 原文地址:https://www.cnblogs.com/qq78292959/p/3088659.html
Copyright © 2020-2023  润新知