다음을 통해 공유


CHeaderCtrl::DrawItem

소유자 그리기 헤더 컨트롤 변경 내용을 시각적 측면이 때 프레임 워크에서 호출 됩니다.

virtual void DrawItem( 
   LPDRAWITEMSTRUCT lpDrawItemStruct  
);

매개 변수

  • lpDrawItemStruct
    에 대 한 포인터는 DRAWITEMSTRUCT 그려야 하는 항목을 설명 하는 구조입니다.

설명

ItemAction 소속은 DRAWITEMSTRUCT 수행 되는 그리기 작업 구조를 정의 합니다.

기본적으로이 함수는 실행 되지 않습니다. 드로잉에 대 한 소유자 그리기를 구현 하려면이 멤버 함수를 재정의 합니다. CHeaderCtrl 개체입니다.

응용 프로그램에서 디스플레이 컨텍스트를 제공에 대해 선택한 모든 그래픽 장치 인터페이스 (GDI) 개체를 복원 해야 lpDrawItemStruct 전에이 멤버 함수를 종료 합니다.

예제

// NOTE: CMyHeaderCtrl is a class derived from CHeaderCtrl. 
// The CMyHeaderCtrl object was created as follows: 
// 
//   CMyHeaderCtrl m_myHeader; 
//   myHeader.Create(WS_CHILD | WS_VISIBLE | HDS_HORZ, 
//      CRect(10, 10, 600, 50), pParentWnd, 1); 

// This example implements the DrawItem method for a  
// CHeaderCtrl-derived class that draws every item as a 
// 3D button using the text color red. 
void CMyHeaderCtrl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
   // This code only works with header controls.
   ASSERT(lpDrawItemStruct->CtlType == ODT_HEADER);

   HDITEM hdi;
   const int c_cchBuffer = 256;
   TCHAR  lpBuffer[c_cchBuffer];

   hdi.mask = HDI_TEXT;
   hdi.pszText = lpBuffer;
   hdi.cchTextMax = c_cchBuffer;

   GetItem(lpDrawItemStruct->itemID, &hdi);

   // Draw the button frame.
   ::DrawFrameControl(lpDrawItemStruct->hDC, 
      &lpDrawItemStruct->rcItem, DFC_BUTTON, DFCS_BUTTONPUSH);

   // Draw the items text using the text color red.
   COLORREF crOldColor = ::SetTextColor(lpDrawItemStruct->hDC, 
      RGB(255,0,0));
   ::DrawText(lpDrawItemStruct->hDC, lpBuffer, 
      (int)_tcsnlen(lpBuffer, c_cchBuffer), 
      &lpDrawItemStruct->rcItem, DT_SINGLELINE|DT_VCENTER|DT_CENTER);
   ::SetTextColor(lpDrawItemStruct->hDC, crOldColor);
}

요구 사항

헤더: afxcmn.h

참고 항목

참조

CHeaderCtrl 클래스

계층 구조 차트

CWnd::OnDrawItem