관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

MENUITEMINFO 본문

API 관련/Win32 API 함수

MENUITEMINFO

님투 2007. 11. 9. 01:06
반응형

MENUITEMINFO

메뉴 아이템의 정보를 정의합니다.이 구조체는 GetMenuItemInfo 함수 및 SetMenuItemInfo 함수로 사용됩니다.

typedef struct tagMENUITEMINFO {
    UINT    cbSize;        // 구조체의 사이즈
    UINT    fMask;         // 취득 또는 설정하는 멤버
    UINT    fType;         // 아이템의 타입
    UINT    fState;        // 아이템 상태
    UINT    wID;           // 아이템ID
    HMENU   hSubMenu;      // 부메뉴의 핸들
    HBITMAP hbmpChecked;   // 체크 표시시의 비트 맵
    HBITMAP hbmpUnchecked; // 체크비표시시의 비트 맵
    ULONG_PTR dwItemData;  // 임의의32비트치
    LPTSTR  dwTypeData;    // 아이템의 내용
    UINT    cch;           // 아이템의 문자열의 길이
    HBITMAP hbmpItem;      // 비트 맵 핸들
} MENUITEMINFO, *LPMENUITEMINFO;

멤버

cbSize

MENUITEMINFO 구조체의 사이즈를 아르바이트 단위로 지정합니다. 48 (을)를 지정합니다.

fMask

설정 또는 취득하는 정보의 멤버를 지정합니다.이하의 값의 편성을 지정합니다.

유효한 멤버
0x00000001 (MIIM_STATE) fState
0x00000002 (MIIM_ID) wID
0x00000004 (MIIM_SUBMENU) hSubMenu
0x00000008 (MIIM_CHECKMARKS) hbmpChecked, hbmpUnchecked
0x00000010 (MIIM_TYPE) fType, dwTypeData

Windows 98/Me/2000/XP: 이 플래그는 MIIM_BITMAP, MIIM_FTYPE, MIIM_STRING 에 교체되었습니다.

0x00000020 (MIIM_DATA) dwItemData
0x00000040 (MIIM_STRING) Windows 98/2000 이후: dwTypeData
0x00000080 (MIIM_BITMAP) Windows 98/2000 이후: hbmpItem
0x00000100 (MIIM_FTYPE) Windows 98/2000 이후: fType
fType

메뉴 아이템의 형태를 나타냅니다.이하의 값의 편성을 지정합니다.

의미
0x00000000 (MFT_STRING)

문자열을 사용해 아이템을 표시합니다. dwTypeData 멤버는 문자열의 주소, cch 멤버는 문자열의 사이즈를 나타냅니다.

Windows 98/2000 이후: hbmpItem 멤버의 MIIM_STRING 에 교체되었습니다.

0x00000004 (MFT_BITMAP)

아이템에 비트 맵을 표시합니다. dwTypeData 멤버의 하위 워드는 비트 맵 핸들을 나타냅니다.

Windows 98/2000 이후: hbmpItem 멤버의 MIIM_BITMAP (와)과 hbmpItem 멤버에 교체되었습니다.

0x00000010 (MFT_MENUBARBREAK)

도구모음에 대해서는 메뉴 아이템을 새로운 행에 배치합니다.드롭 다운 메뉴·부메뉴·쇼트 컷 메뉴에 대해서는 메뉴 아이템을 새로운 열에 배치합니다.드롭 다운 메뉴·부메뉴·쇼트 컷 메뉴에서는 새로운 열과의 사이에 선이 끌립니다.

0x00000020 (MFT_MENUBREAK)

도구모음에 대해서는 메뉴 아이템을 새로운 행에 배치합니다.드롭 다운 메뉴·부메뉴·쇼트 컷 메뉴에 대해서는 메뉴 아이템을 새로운 열에 배치합니다.드롭 다운 메뉴·부메뉴·쇼트 컷 메뉴에서는 새로운 열과의 사이에는 선은이 끌리지 않습니다.

0x00000100 (MFT_OWNERDRAW)

오나드로·메뉴 아이템인 것을 나타냅니다.메뉴 아이템의 묘화를 오너 윈도우가 행합니다.오너 윈도우는 WM_MEASUREITEM 메세지 및 WM_DRAWITEM 메세지를 처리할 필요가 있습니다.이 값이 지정되었을 경우는, dwTypeData (은)는 어플리케이션 정의치를 나타냅니다.(HSP에서는 사용할 수 없습니다)

0x00000200 (MFT_RADIOCHECK)

hbmpChecked 멤버가 0 (NULL) 때, 체크 마크 대신에 라디오 버튼을 표시합니다.

0x00000800 (MFT_SEPARATOR)

세퍼레이터(단락선)를 표시합니다.

0x00002000 (MFT_RIGHTORDER)

Windows 95/2000 이후: 아라비아어나 헤브라이어등의 시스템으로 문자열을 오른쪽에서 왼쪽으로 표시합니다.

0x00004000 (MFT_RIGHTJUSTIFY)

이후의 아이템을 도구모음의 우측으로 배치합니다.도구모음의 아이템에만 유효합니다.

MFT_STRING, MFT_BITMAP, MFT_SEPARATOR (은)는 동시에 지정할 수 없습니다.

Windows 98/2000 이후: 이 멤버는, fMask 멤버에 MIIM_FTYPE 하지만 지정되었을 때에 마셔 사용됩니다.

fState

메뉴 아이템 상태를 나타냅니다.이하의 값의 편성을 지정합니다.

의미
0x00000000 (MFS_ENABLED, MFS_UNCHECKED, MFS_UNHILITE)

통상 표시로 합니다.

0x00000003 (MFS_GLAYED, MFS_DISABLED)

아이템을 회색으로 표시해, 선택 불가로 합니다.

0x00000008 (MFS_CHECKED)

아이템에 체크 마크를 붙입니다.

0x00000080 (MFS_HILITE)

아이템을 하이라이트 표시합니다.

0x00001000 (MFS_DEFAULT)

디폴트 아이템으로 설정합니다.디폴트 아이템은1개의 메뉴에 대해서1개까지 가질 수 있습니다.디폴트 아이템은 굵은 글씨로 표시됩니다.

wID

메뉴 아이템 ID (을)를 나타냅니다.이 멤버는 fMask 멤버에 MIIM_ID (을)를 지정해 있을 때 마셔 유효합니다.

hSubMenu

부메뉴 또는 드롭 다운 메뉴의 핸들을 나타냅니다.부메뉴를 가지지 않는 경우는 0 (NULL) (이)가 됩니다.이 멤버는 fMask 멤버에 MIIM_SUBMENU (을)를 지정해 있을 때 마셔 유효합니다.

hbmpChecked

아이템이 체크되었을 때에 아이템의 근처에 표시하는 비트 맵의 핸들을 나타냅니다. 0 (NULL) 의 경우는 디폴트 비트 맵이 사용됩니다.디폴트 비트 맵은, fType 멤버에 MFT_RADIOCHECK 하지만 지정되어 있을 때는 라디오 버튼에, 그렇지 않을 때에는 체크 마크가 됩니다.이 멤버는 fMask 멤버에 MIIM_CHECKMARKS (을)를 지정해 있을 때 마셔 유효합니다.

hbmpUnchecked

아이템이 체크되어 있지 않을 때에 아이템의 근처에 표시하는 비트 맵의 핸들을 나타냅니다. 0 (NULL) 의 경우는 아무것도 표시되지 않습니다.이 멤버는 fMask 멤버에 MIIM_CHECKMARKS (을)를 지정해 있을 때 마셔 유효합니다.

dwItemData

아이템에 관련지을 수 있었던 어플리케이션 정의의32비트치입니다.

dwTypeData

메뉴 아이템의 내용을 나타냅니다.이 멤버의 의미는 fType 멤버의 값에 의존합니다.이 멤버는 fMask 멤버에 MIIM_TYPE (을)를 지정해 있을 때 마셔 유효합니다.

MFT_STRING 형태의 아이템의 정보를 취득하려면 , 우선 이 멤버에 0 (NULL) (을)를 지정해 GetMenuItemInfo 함수를 호출합니다.이 때, cch 멤버에는 아이템의 텍스트를 격납하는데 필요한 버퍼의 사이즈(Unicode 판에서는 문자수)가 격납됩니다.버퍼를 확보한 후, 이 멤버에 버퍼 주소를 지정해 다시 GetMenuItemInfo 함수를 호출합니다.

그 외의 형태의 아이템의 정보를 취득하는 경우는, GetMenuItemInfo 함수를 호출하면 fType 멤버에 의해서 지정되는 값이 이 멤버에 격납됩니다.

SetMenuItemInfo 함수를 사용해 아이템을 설정하는 경우는, fType 멤버에 의해서 요구되는 값을 이 멤버로 지정합니다.

Windows 98/2000 이후: 이 멤버는 fMask 멤버에 MIIM_STRING (을)를 지정해 있을 때 유효합니다.

cch

MFT_STRING 형태의 아이템의 정보를 취득할 때는, 아이템의 텍스트를 격납하는 버퍼의 아르바이트수(Unicode 판의 경우는 문자수)를 지정합니다.이 멤버는 fMask 멤버에 MIIM_TYPE (을)를 지정해 있을 때 마셔 유효합니다.그 이외의 경우는 이 멤버는 0 (이)가 됩니다.

Windows 98/2000 이후: 이 멤버는 fMask 멤버에 MIIM_STRING (을)를 지정해 있을 때 유효합니다.

hbmpItem

Windows 98/2000 이후: 표시되는 비트 맵의 핸들 또는 이하의 값의 어느쪽이든을 나타냅니다.이 멤버는 fMask 멤버에 MIIM_BITMAP (을)를 지정해 있을 때 마셔 유효합니다.

표시되는 비트 맵
-1 (HBMMENU_CALLBACK)

비트 맵은 메뉴를 소유하는 윈도우에 의해서 묘화 됩니다.어플리케이션은 WM_MEASUREITEMWM_DRAWITEM 메세지를 처리하지 않으면 안됩니다.

1 (HBMMENU_SYSTEM)

Windows 아이콘 또는 dwItemData 멤버로 지정되는 윈도우의 아이콘이 묘화 됩니다.

2 (HBMMENU_MBAR_RESTORE)

도구모음의 「원의 사이즈에 되돌린다」버튼

3 (HBMMENU_MBAR_MINIMIZE)

도구모음의 「최소화」버튼

5 (HBMMENU_MBAR_CLOSE)

도구모음의 「닫는다」버튼

6 (HBMMENU_MBAR_CLOSE_D)

비표시의 도구모음의 「닫는다」버튼

7 (HBMMENU_MBAR_MINIMIZE_D)

비표시의 도구모음의 「최소화」버튼

8 (HBMMENU_POPUP_CLOSE)

부메뉴의 「닫는다」버튼

9 (HBMMENU_POPUP_RESTORE)

부메뉴의 「원의 사이즈에 되돌린다」버튼

10 (HBMMENU_POPUP_MAXIMIZE)

부메뉴의 「최대화」버튼

11 (HBMMENU_POPUP_MINIMIZE)

부메뉴의 「최소화」버튼

해설

메뉴에는 텍스트 또는 비트 맵을 사용한 아이템을 표시시킬 수 있습니다만, 양쪽 모두를 동시에 사용할 수 없습니다.

Windows 98/2000 이후: 메뉴는 텍스트, 비트 맵, 및 그 양쪽 모두를 사용한 아이템을 표시시킬 수 있습니다.

대응 정보

Windows 95 이후 / Windows NT 4.0 이후

변수와의 대응

HSP 변수 멤버
멤버명 오프셋 사이즈
mii.0 cbSize ( = 48 ) 0 4
mii.1 fMask 4 4
mii.2 fType 8 4
mii.3 fState 12 4
mii.4 wID 16 4
mii.5 hSubMenu 20 4
mii.6 hbmpChecked 24 4
mii.7 hbmpUnchecked 28 4
mii.8 dwItemData 32 4
mii.9 dwTypeData 36 4
mii.10 cch 40 4
mii.11 hbmpItem 44 4
반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

WM_USER  (0) 2007.11.09
레지스트리의 값의 형태  (0) 2007.11.09
BROWSEINFO  (0) 2007.11.09
WM_RBUTTONUP  (0) 2007.11.09
WM_RBUTTONDOWN  (0) 2007.11.09
Comments