CWnd::SubclassWindow

창 "동적으로 하위 클래스"에이 멤버 함수를 호출 하 여이 연결 CWnd 개체입니다.

BOOL SubclassWindow( 
   HWND hWnd  
);

매개 변수

  • hWnd
    창 핸들입니다.

반환 값

함수가 성공 하면 0이 아닌. 그렇지 않으면 0입니다.

설명

창이 서브클래싱된 동적으로 되 면 windows 메시지를 통해 라우팅하는 CWnd의 메시지 맵 및 메시지 처리기를 호출을 CWnd의 클래스 먼저. 기본 클래스에 전달 하는 메시지 창에서 기본 메시지 처리기에 전달 됩니다.

이 멤버 함수는 Windows 컨트롤에 연결 된 CWnd 개체 및 창의 대체 WndProcAfxWndProc 함수. 이전에 대 한 포인터를 저장 WndProc 에 있는 CWnd 개체입니다.

참고

이 함수를 호출할 때 창 MFC 개체에 이미 첨부 되어야 합니다.

예제

// The following code shows how to subclass the edit control and list box 
// controls inside a combo box. It uses WM_CTLCOLOR for subclassing. 
// CSuperComboBox represents the combo box
HBRUSH CSuperComboBox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   if (nCtlColor == CTLCOLOR_EDIT)
   {
      //Edit control 
      if (m_edit.GetSafeHwnd() == NULL)
         m_edit.SubclassWindow(pWnd->GetSafeHwnd());
   }
   else if (nCtlColor == CTLCOLOR_LISTBOX)
   {
      //ListBox control 
      if (m_listbox.GetSafeHwnd() == NULL)
         m_listbox.SubclassWindow(pWnd->GetSafeHwnd());
   }

   HBRUSH hbr = CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);
   return hbr;
}

void CSuperComboBox::OnDestroy()
{
   //unsubclass edit and list box before destruction 
   if (m_edit.GetSafeHwnd() != NULL)
      m_edit.UnsubclassWindow();
   if (m_listbox.GetSafeHwnd() != NULL)
      m_listbox.UnsubclassWindow();
   CComboBox::OnDestroy();
}

요구 사항

헤더: afxwin.h

참고 항목

참조

CWnd 클래스

계층 구조 차트

CWnd::DefWindowProc

CWnd::SubclassDlgItem

CWnd::Attach

CWnd::PreSubclassWindow

CWnd::UnsubclassWindow