Share via


NMCUSTOMDRAW 구조체(commctrl.h)

NM_CUSTOMDRAW 알림 코드에 특정한 정보를 포함합니다.

구문

typedef struct tagNMCUSTOMDRAWINFO {
  NMHDR     hdr;
  DWORD     dwDrawStage;
  HDC       hdc;
  RECT      rc;
  DWORD_PTR dwItemSpec;
  UINT      uItemState;
  LPARAM    lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;

멤버

hdr

형식: NMHDR

이 알림 코드에 대한 정보를 포함하는 NMHDR 구조체입니다.

dwDrawStage

형식: DWORD

현재 그리기 단계입니다. 다음 값 중 하나입니다.

의미
전역 값:
CDDS_POSTERASE
지우기 주기가 완료된 후
CDDS_POSTPAINT
그리기 주기가 완료된 후
CDDS_PREERASE
지우기 주기가 시작되기 전에.
CDDS_PREPAINT
그리기 주기가 시작되기 전에.
항목별 값:
CDDS_ITEM
dwItemSpec, uItemStatelItemlParam 멤버가 유효하다는 것을 나타냅니다.
CDDS_ITEMPOSTERASE
항목을 지운 후.
CDDS_ITEMPOSTPAINT
항목을 그린 후.
CDDS_ITEMPREERASE
항목을 지우기 전.
CDDS_ITEMPREPAINT
항목을 그리기 전.
CDDS_SUBITEM
하위 항목을 그린 경우 CDDS_ITEMPREPAINT 또는 CDDS_ITEMPOSTPAINT와 결합된 플래그입니다. CDRF_NOTIFYITEMDRAW가 CDDS_PREPAINT에서 반환된 경우에만 설정됩니다.

hdc

형식: HDC

컨트롤의 디바이스 컨텍스트에 대한 핸들입니다. 이 HDC를 사용하여 GDI 함수를 수행합니다.

rc

형식: RECT

그려지는 영역의 경계 사각형을 설명하는 RECT 구조체입니다. 이 멤버는 CDDS_ITEMPREPAINT 알림에 의해서만 초기화됩니다. 버전 5.80. 이 멤버는 CDDS_PREPAINT 알림에 의해 초기화됩니다.

dwItemSpec

형식: DWORD_PTR

항목 번호입니다. 이 멤버에 포함된 항목은 알림을 보내는 컨트롤 유형에 따라 달라집니다. 특정 컨트롤에 대한 NM_CUSTOMDRAW 알림 참조를 참조하여 이 멤버에 포함된 항목(있는 경우)을 확인합니다.

uItemState

형식: UINT

현재 항목 상태입니다. 이 값은 다음 플래그의 조합입니다.

의미
CDIS_CHECKED
항목이 선택되어 있습니다.
CDIS_DEFAULT
항목이 기본 상태에 있습니다.
CDIS_DISABLED
항목을 사용할 수 없습니다.
CDIS_FOCUS
항목이 포커스에 있습니다.
CDIS_GRAYED
항목이 회색으로 나타납니다.
CDIS_HOT
항목은 현재 포인터("핫") 아래에 있습니다.
CDIS_INDETERMINATE
항목이 결정되지 않은 상태에 있습니다.
CDIS_MARKED
항목이 표시됩니다. 이 것의 의미는 구현에 의해 결정됩니다.
CDIS_SELECTED
항목이 선택되어 있습니다.
참고 이 플래그는 LVS_SHOWSELALWAYS 스타일이 있는 소유자가 그린 목록 보기 컨트롤에 대해 제대로 작동하지 않습니다. 이러한 컨트롤의 경우 LVM_GETITEMSTATE(또는 ListView_GetItemState )을 사용하고 LVIS_SELECTED플래그를 확인하여 항목을 선택할지 여부를 확인할 수 있습니다.
 
CDIS_SHOWKEYBOARDCUES

버전 6.0.항목에 키보드 신호가 표시됩니다.

Comctl32 버전 6은 재배포할 수 없습니다. 운영 체제. Comctl32.dll 버전 6을 사용하려면 매니페스트에 지정합니다. 매니페스트에 대한 자세한 내용은 시각적 스타일 사용을 참조하세요.

CDIS_NEARHOT
항목은 현재 마우스 포인터("핫") 아래에 있는 컨트롤의 일부이지만 항목 자체는 "핫"이 아닙니다. 이 것의 의미는 구현에 의해 결정됩니다.
CDIS_OTHERSIDEHOT
항목은 현재 마우스 포인터("핫") 아래에 있는 분할 단추의 일부이지만 항목 자체는 "핫"이 아닙니다. 이 것의 의미는 구현에 의해 결정됩니다.
CDIS_DROPHILITED
항목은 현재 끌어서 놓기 작업의 놓기 대상입니다.

lItemlParam

형식: LPARAM

애플리케이션 정의 항목 데이터입니다.

설명

애플리케이션에서 반환하는 값은 현재 그리기 단계에 따라 달라집니다. 연결된 NMCUSTOMDRAW 구조체의 dwDrawStage 멤버는 그리기 단계를 지정하는 값을 보유합니다. dwDrawStage 멤버가 CDDS_PREPAINT 및 CDDS_PREERASE 같으면 일부 컨트롤은 먼저 CDDS_PREERASE 메시지를 보내고 반환 값이 전송될 후속 메시지를 나타낼 것으로 예상합니다. 상태 및 그리기 단계를 보여 주는 코드 샘플은 사용자 지정 그리기를 사용하여 컨트롤의 모양 사용자 지정을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 commctrl.h