日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MENUITEMINFO结构的翻译(转)

發布時間:2025/6/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?函數使用

總結

以上是生活随笔為你收集整理的MENUITEMINFO结构的翻译(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。