다음을 통해 공유


ModifyMenuA 함수(winuser.h)

기존 메뉴 항목을 변경합니다. 이 함수는 메뉴 항목의 콘텐츠, 모양 및 동작을 지정하는 데 사용됩니다.

참고ModifyMenu 함수는 SetMenuItemInfo 함수로 대체되었습니다. 그러나 SetMenuItemInfo의 확장된 기능이 필요하지 않은 경우에도 ModifyMenu를 사용할 수 있습니다.
 

구문

BOOL ModifyMenuA(
  [in]           HMENU    hMnu,
  [in]           UINT     uPosition,
  [in]           UINT     uFlags,
  [in]           UINT_PTR uIDNewItem,
  [in, optional] LPCSTR   lpNewItem
);

매개 변수

[in] hMnu

형식: HMENU

변경할 메뉴에 대한 핸들입니다.

[in] uPosition

형식: UINT

uFlags 매개 변수에 의해 결정된 대로 변경할 메뉴 항목입니다.

[in] uFlags

형식: UINT

uPosition 매개 변수의 해석과 메뉴 항목의 콘텐츠, 모양 및 동작을 제어합니다. 이 매개 변수에는 다음 필수 값 중 하나가 포함되어야 합니다.

의미
MF_BYCOMMAND
0x00000000L
uPosition 매개 변수가 메뉴 항목의 식별자를 제공했음을 나타냅니다. MF_BYCOMMAND 플래그와 MF_BYPOSITION 플래그를 지정하지 않으면 MF_BYCOMMAND 플래그가 기본값입니다.
MF_BYPOSITION
0x00000400L
uPosition 매개 변수가 메뉴 항목의 상대 위치를 0부터 시작했음을 나타냅니다.
 

매개 변수에는 다음 값 중 하나 이상이 포함되어야 합니다.

의미
MF_BITMAP
0x00000004L
비트맵을 메뉴 항목으로 사용합니다. lpNewItem 매개 변수에는 비트맵에 대한 핸들이 포함되어 있습니다.
MF_CHECKED
0x00000008L
항목 옆에 검사 표시를 Places. 애플리케이션에서 검사 표시 비트맵을 제공하는 경우(SetMenuItemBitmaps 함수 참조) 이 플래그는 메뉴 항목 옆에 선택한 비트맵을 표시합니다.
MF_DISABLED
0x00000002L
메뉴 항목을 선택할 수 없도록 메뉴 항목을 사용하지 않도록 설정하지만 이 플래그는 회색으로 표시되지 않습니다.
MF_ENABLED
0x00000000L
메뉴 항목을 선택할 수 있도록 설정하고 회색 상태에서 복원합니다.
MF_GRAYED
0x00000001L
메뉴 항목을 사용하지 않도록 설정하고 선택할 수 없도록 회색으로 표시합니다.
MF_MENUBARBREAK
0x00000020L
메뉴 모음의 MF_MENUBREAK 플래그와 동일한 함수입니다. 드롭다운 메뉴, 하위 메뉴 또는 바로 가기 메뉴의 경우 새 열은 이전 열에서 세로선으로 구분됩니다.
MF_MENUBREAK
0x00000040L
열을 구분하지 않고 새 줄(메뉴 모음의 경우) 또는 새 열(드롭다운 메뉴, 하위 메뉴 또는 바로 가기 메뉴의 경우)에서 항목을 Places.
MF_OWNERDRAW
0x00000100L
항목이 소유자가 그린 항목임을 지정합니다. 메뉴가 처음으로 표시되기 전에 메뉴를 소유하는 창은 메뉴 항목의 너비와 높이를 검색하는 WM_MEASUREITEM 메시지를 받습니다. 그런 다음 메뉴 항목의 모양을 업데이트해야 할 때마다 WM_DRAWITEM 메시지가 소유자 창의 창 프로시저로 전송됩니다.
MF_POPUP
0x00000010L
메뉴 항목이 드롭다운 메뉴 또는 하위 메뉴를 열게 지정합니다. uIDNewItem 매개 변수는 드롭다운 메뉴 또는 하위 메뉴에 대한 핸들을 지정합니다. 이 플래그는 메뉴 모음 또는 드롭다운 메뉴, 하위 메뉴 또는 바로 가기 메뉴에 하위 메뉴를 여는 메뉴 항목에 메뉴 이름을 추가하는 데 사용됩니다.
MF_SEPARATOR
0x00000800L
가로 구분선을 그립니다. 이 플래그는 드롭다운 메뉴, 하위 메뉴 또는 바로 가기 메뉴에서만 사용됩니다. 선은 회색으로 표시하거나 사용하지 않도록 설정하거나 강조 표시할 수 없습니다. lpNewItemuIDNewItem 매개 변수는 무시됩니다.
MF_STRING
0x00000000L
메뉴 항목이 텍스트 문자열임을 지정합니다. lpNewItem 매개 변수는 문자열에 대한 포인터입니다.
MF_UNCHECKED
0x00000000L
항목(기본값) 옆에 검사 표시를 배치하지 않습니다. 애플리케이션에서 검사 표시 비트맵을 제공하는 경우(SetMenuItemBitmaps 함수 참조) 이 플래그는 메뉴 항목 옆에 명확한 비트맵을 표시합니다.

[in] uIDNewItem

형식: UINT_PTR

수정된 메뉴 항목의 식별자이거나 uFlags 매개 변수에 MF_POPUP 플래그가 설정된 경우 드롭다운 메뉴 또는 하위 메뉴에 대한 핸들입니다.

[in, optional] lpNewItem

형식: LPCTSTR

변경된 메뉴 항목의 내용입니다. 이 매개 변수의 해석은 uFlags 매개 변수에 MF_BITMAP, MF_OWNERDRAW 또는 MF_STRING 플래그가 포함되어 있는지 여부에 따라 달라집니다.

의미
MF_BITMAP
0x00000004L
비트맵 핸들입니다.
MF_OWNERDRAW
0x00000100L
메뉴 항목과 관련된 추가 데이터를 유지하는 데 사용되는 애플리케이션에서 제공하는 값입니다. 값은 메뉴 항목을 만들거나 모양을 업데이트할 때 전송되는 WM_MEASUREITEM 또는 WM_DRAWITEM 메시지의 lParam 매개 변수가 가리키는 구조체의 itemData 멤버에 있습니다.
MF_STRING
0x00000000L
null로 끝나는 문자열(기본값)에 대한 포인터입니다.

반환 값

형식: BOOL

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

ModifyMenu가 드롭다운 메뉴 또는 하위 메뉴를 여는 메뉴 항목을 바꾸는 경우 함수는 이전 드롭다운 메뉴 또는 하위 메뉴를 삭제하고 사용하는 메모리를 해제합니다.

키보드 가속기가 비트맵 또는 소유자가 그린 메뉴 항목에서 작동하려면 메뉴 소유자가 WM_MENUCHAR 메시지를 처리해야 합니다. 자세한 내용은 소유자 그리기 메뉴 및 WM_MENUCHAR 메시지를 참조하세요.

메뉴가 표시된 창에 있는지 여부에 관계없이 메뉴가 변경될 때마다 애플리케이션에서 DrawMenuBar 함수를 호출해야 합니다. 기존 메뉴 항목의 특성을 변경하려면 CheckMenuItemEnableMenuItem 함수를 사용하는 것이 훨씬 빠릅니다.

다음 플래그 그룹을 함께 사용할 수 없습니다.

  • MF_BYCOMMANDMF_BYPOSITION
  • MF_DISABLED, MF_ENABLEDMF_GRAYED
  • MF_BITMAP, MF_STRING, MF_OWNERDRAWMF_SEPARATOR
  • MF_MENUBARBREAKMF_MENUBREAK
  • MF_CHECKEDMF_UNCHECKED

예제

예제는 Menu-Item 텍스트 문자열에 대한 글꼴 설정을 참조하세요.

참고

winuser.h 헤더는 MODIFYMenu를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 winuser.h(Windows.h 포함)
라이브러리 User32.lib
DLL User32.dll
API 세트 ext-ms-win-ntuser-menu-l1-1-3(Windows 10 버전 10.0.14393에 도입됨)

추가 정보

AppendMenu

CheckMenuItem

개념

DrawMenuBar

EnableMenuItem

메뉴

참조

SetMenuItemBitmaps

SetMenuItemInfo