2014년 1월 7일 화요일

NMCUSTOMDRAW 구조체

NM_CUSTOMDRAW 알림 코드에 대한 정보 명세를 포함.

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

멤버

  • hdr
    • Type : NMHDR
    • NMHDR 구조체는 이 통지 코드에 대한 정보를 포함한다.
  • dwDrawStage
    • Type : DWORD
    • 현재 그리고 있는 단계. 이것은 다음의 값들 중 하나이다.
의미
전역 값 :
CDDS_POSTERASE 지우기 주기가 완료된 후
CDDS_POSTPAINT 그리기 주기가 완료된 후
CDDS_PREERASE 지우기 주기가 시작되기 전
CDDS_PREPAINT 그리기 주기가 시작되기 전
항목 특징 값 :
CDDS_ITEM dwItemSpec, uItemState, lItemlParam 멤버가 유효함을 암시
CDDS_ITEMPOSTERASE 항목이 지워진 후
CDDS_ITEMPOSTPAINT 항목이 그려진 후
CDDS_ITEMPREERASE 항목이 지워지기 전
CDDS_ITEMPREPAINT 항목이 그려지기 전
CDDS_SUBITEM 버전 4.71. 플래그는 부 항목이 그려지고 있다면 CDDS_ITEMPREPAINT 또는 CDDS_ITEMPOSTPAINT와 결합된다.
이것은 CDRF_NOTIFYITEMDRAW가 CDDS_PREPAINT로부터 반환된다면 오직 설정될 것이다.


  • hdc
    • Type : HDC
    • 컨트롤의 디바이스 컨텍스트의 핸들. GDI 함수를 수행하는 데 이 HDC를 사용
  • rc
    • Type : RECT
    • RECT 구조체는 그려지고 있는 영역의 사각영역을 묘사한다. 이 멤버는 CDDS_ITEMPREPAINT 통지에 의해서만 초기화 된다.
    • 버전 5.80. 이 멤버는 CDDS_PREPAINT 통지에 의해서도 초기화된다.
  • dwItemSpec
    • Type : DWORD_PTR
    • 항목 번호. 이 멤버에 포함되는 항목은 컨트롤의 타입에 의존할 것이다. NM_CUSTOMDRAW 통지는 이 멤버에 포함되는 어떤것이든지 결정을 위한 특징 제어를 위해 참조한다.
  • uItemState
    • Type : UINT
    • 현재 항목 상태. 이 값은 다음의 플래그의 합동체이다.
의미
CDIS_CHECKED 항목이 체크됨
CDIS_DEFAULT 항목이 그것의 기본 상태에 있음
CDIS_DISABLED 항목이 비활성임
CDIS_FOCUS 항목이 초점됨
CDIS_GRAYED 항목이 잿빛이됨
CDIS_HOT 항목이 현재 마우스 포인터 아래에 있음
CDIS_INDETERMINATE 항목이 마크 됨. 이 뜻은 수행에 의해 결정됨
CDIS_SELECTED 항목이 선택됨
CDIS_SHOWKEYBOARDCUES 버전 6.0. 항목이 그것의 키보드 팁이 보여지고 있음.
CDIS_NEARHOT 항목은 현재 마우스 포인터 아래에 있는 컨트롤의 부분이지만, 그 항목 자신은 HOT 상태가 아니다.
이 의미는 수행에 의해 결정된다.
CDIS_OTHERSIDEHOT 항목은 현재 마우스 포인터 아래에 있는 나눔버튼의 부분이지만, 그 항목 자신은 HOT 상태가 아니다.
이 의미는 수행에 의해 결정된다.
CDIS_DROPHILITED 항목이 현재 드래그 앤 드롭 수행의 드롭 대상이다.

  • lItemlParam
    • Type : LPARAM
    • 응용프로그램 정의된 항목 데이터.


주의사항
당신의 응용프로그램의 값은 현재 drawing stage에 의존하여 반환한다.
조합된 NMCUSTOMDRAW 구조체의 dwDrawStage 멤버는 drawing stage 특징값을 소유한다.
dwDrawStage 멤버가 CDDS_PREPAINT와 CDDS_PREERASE와 같을 때 일부 컨트롤은 CDDS_PREERASE 메시지를 처음으로 보내고 직후 메시지가 보내질 암시 값을 기대한다.


















댓글 없음:

댓글 쓰기