다음을 통해 공유


DRAWITEMSTRUCT 구조체(winuser.h)

소유자 창에서 소유자 그리기 컨트롤 또는 메뉴 항목을 그리는 방법을 결정하는 데 사용하는 정보를 제공합니다. 소유자가 그린 컨트롤 또는 메뉴 항목의 소유자 창은 이 구조체에 대한 포인터를 WM_DRAWITEM 메시지의 lParam 매개 변수로 받습니다.

구문

typedef struct tagDRAWITEMSTRUCT {
  UINT      CtlType;
  UINT      CtlID;
  UINT      itemID;
  UINT      itemAction;
  UINT      itemState;
  HWND      hwndItem;
  HDC       hDC;
  RECT      rcItem;
  ULONG_PTR itemData;
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;

멤버

CtlType

형식: UINT

컨트롤 형식입니다. 이 멤버는 다음 값 중 하나일 수 있습니다. 설명 부분을 참조하세요.

의미
ODT_BUTTON
소유자가 그린 단추
ODT_COMBOBOX
소유자가 그린 콤보 상자
ODT_LISTBOX
소유자가 그린 목록 상자
ODT_LISTVIEW
목록 보기 컨트롤
ODT_MENU
소유자가 그린 메뉴 항목
ODT_STATIC
소유자가 그린 정적 컨트롤
ODT_TAB
탭 컨트롤

CtlID

형식: UINT

콤보 상자, 목록 상자, 단추 또는 정적 컨트롤의 식별자입니다. 이 멤버는 메뉴 항목에 사용되지 않습니다.

itemID

형식: UINT

메뉴 항목의 메뉴 항목 식별자 또는 목록 상자 또는 콤보 상자에 있는 항목의 인덱스입니다. 빈 목록 상자 또는 콤보 상자의 경우 이 멤버는 -1일 수 있습니다. 이렇게 하면 컨트롤에 항목이 없더라도 애플리케이션이 rcItem 멤버가 지정한 좌표에 포커스 사각형만 그릴 수 있습니다. 이는 목록 상자 또는 콤보 상자에 포커스가 있는지 여부를 사용자에게 나타냅니다. itemAction 멤버에서 비트를 설정하는 방법은 목록 상자 또는 콤보 상자에 포커스가 있는 것처럼 사각형을 그릴지 여부를 결정합니다.

itemAction

형식: UINT

필요한 그리기 작업입니다. 이 멤버는 하나 이상의 값일 수 있습니다.

의미
ODA_DRAWENTIRE
전체 컨트롤을 그려야 합니다.
ODA_FOCUS
컨트롤이 키보드 포커스를 잃거나 얻었습니다. itemState 멤버를 확인하여 컨트롤에 포커스가 있는지 여부를 확인해야 합니다.
ODA_SELECT
선택 상태 변경되었습니다. itemState 멤버를 선택하여 새 선택 상태를 결정해야 합니다.

itemState

형식: UINT

현재 그리기 작업이 수행된 후 항목의 시각적 상태입니다. 이 멤버는 다음 표에 표시된 값의 조합일 수 있습니다.

의미
ODS_CHECKED
메뉴 항목을 선택해야 합니다. 이 비트는 메뉴에서만 사용됩니다.
ODS_COMBOBOXEDIT
드로잉은 소유자가 그린 콤보 상자의 선택 필드(편집 컨트롤)에서 발생합니다.
ODS_DEFAULT
항목이 기본 항목입니다.
ODS_DISABLED
항목은 사용 안 함으로 그려집니다.
ODS_FOCUS
항목에 키보드 포커스가 있습니다.
ODS_GRAYED
항목은 회색으로 표시됩니다. 이 비트는 메뉴에서만 사용됩니다.
ODS_HOTLIGHT
항목이 핫 트랙되고 있습니다. 즉, 마우스가 항목에 있을 때 항목이 강조 표시됩니다.
ODS_INACTIVE
항목이 비활성 상태이며 메뉴와 연결된 창이 비활성 상태입니다.
ODS_NOACCEL
컨트롤은 키보드 가속기 신호 없이 그려집니다.
ODS_NOFOCUSRECT
컨트롤은 포커스 표시기 신호 없이 그려집니다.
ODS_SELECTED
메뉴 항목의 상태 선택됩니다.

hwndItem

형식: HWND

콤보 상자, 목록 상자, 단추 및 정적 컨트롤에 대한 컨트롤에 대한 핸들입니다. 메뉴의 경우 이 멤버는 항목이 포함된 메뉴에 대한 핸들입니다.

hDC

형식: HDC

디바이스 컨텍스트에 대한 핸들입니다. 이 디바이스 컨텍스트는 컨트롤에서 그리기 작업을 수행할 때 사용해야 합니다.

rcItem

형식: RECT

그릴 컨트롤의 경계를 정의하는 사각형입니다. 이 사각형은 hDC 멤버가 지정한 디바이스 컨텍스트에 있습니다. 시스템은 소유자 창이 콤보 상자, 목록 상자 및 단추에 대한 디바이스 컨텍스트에서 그리는 모든 항목을 자동으로 클립하지만 메뉴 항목을 잘라내지 않습니다. 메뉴 항목을 그릴 때 소유자 창은 rcItem 멤버가 정의한 사각형의 경계를 벗어나서는 안 됩니다.

itemData

형식: ULONG_PTR

메뉴 항목과 연결된 애플리케이션 정의 값입니다. 컨트롤의 경우 이 매개 변수는 LB_SETITEMDATA 또는CB_SETITEMDATA 메시지에 의해 목록 상자 또는 콤보 상자에 마지막으로 할당된 값을 지정합니다. 목록 상자 또는 콤보 상자에 LBS_HASSTRINGS 또는 CBS_HASSTRINGS 스타일이 있는 경우 이 값은 처음에 0입니다. 그렇지 않으면 이 값은 처음에 다음 메시지 중 하나의 lParam 매개 변수에 있는 목록 상자 또는 콤보 상자에 전달된 값입니다.

CtlTypeODT_BUTTON 또는 ODT_STATIC 경우 itemData는 0입니다.

설명

상태 막대와 같은 일부 컨트롤 형식은 CtlType 값을 설정하지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 winuser.h(Windows.h 포함)

추가 정보

CB_ADDSTRING

CB_INSERTSTRING

CB_SETITEMDATA

LB_ADDSTRING

LB_INSERTSTRING

LB_SETITEMDATA

참조

WM_DRAWITEM