다음을 통해 공유


AfxRegisterWndClass

자신의 창 클래스를 등록할 수 있습니다.

LPCTSTR AFXAPI AfxRegisterWndClass(
   UINT nClassStyle,
   HCURSOR hCursor = 0,
   HBRUSH hbrBackground = 0,
   HICON hIcon = 0 
); 

매개 변수

  • nClassStyle
    Windows 클래스 스타일이 나 스타일의 비트 OR (사용 하 여 만든 조합을 지정 합니다.|) 창 클래스에 대 한 연산자입니다.클래스 스타일 목록을 참조 하십시오의 WNDCLASS 의 구조는 Windows SDK.경우 NULL, 다음과 같은 방법으로 기본값이 설정 됩니다.

    • 마우스의 스타일을 설정 CS_DBLCLKS에서 마우스를 클릭할 때 어떤 보냅니다 메시지 창 프로시저를 두 번 클릭 합니다.

    • Windows 표준 화살표 커서 스타일 설정 IDC_ARROW.

    • 배경 브러시를 설정 NULL, 창의 배경을 지웁니다.

    • 표준, 손을 흔드는 플래그 Windows 로고 아이콘으로 아이콘을 설정합니다.

  • hCursor
    설치할 각 창의 창 클래스에서 만든 커서 리소스에 대 한 핸들을 지정 합니다.기본값을 사용 하는 경우 0, 표준 얻을 수 IDC_ARROW 커서입니다.

  • hbrBackground
    설치할 각 창의 창 클래스에서 만든 브러시 리소스에 대 한 핸들을 지정 합니다.기본값을 사용 하는 경우 0, 경우에 NULL 배경 브러시와 기본적으로 창 마법 않습니다 지울 배경 처리 하는 동안 WM_ERASEBKGND.

  • hIcon
    설치할 각 창의 창 클래스에서 만든 아이콘 리소스에 대 한 핸들을 지정 합니다.기본값을 사용 하는 경우 0, 표준, 손을 흔드는 플래그 Windows 로고 아이콘을 발생 합니다.

반환 값

클래스 이름이 포함 된 null로 끝나는 문자열입니다.이 클래스 이름으로 전달할 수 있습니다는 만들기 멤버 함수에서 CWnd 또는 다른 CWnd-파생 클래스는 창을 만들 수 있습니다.이름은 Microsoft Foundation 클래스 라이브러리에 의해 생성 됩니다.

[!참고]

반환 값에는 정적 버퍼에 대 한 포인터입니다.이 문자열을 저장 하려면 할당 된 CString 변수입니다.

설명

Mfc 라이브러리 여러 표준 창 클래스에 대해 자동으로 등록합니다.자신의 창 클래스를 등록 하려면이 함수를 호출 합니다.

이름을 등록 하 여 클래스에 대 한 AfxRegisterWndClass 매개 변수에 따라 전적으로 달라 집니다.호출 하는 경우 AfxRegisterWndClass 여러 번 동일한 매개 변수와 함께만 처음 호출할 클래스 등록 합니다.후속 호출을 AfxRegisterWndClass 동일한 매개 변수를 사용 하기만 하면 이미 등록 된 클래스를 반환 합니다.

호출 하는 경우 AfxRegisterWndClass 각 클래스에 대 한 별도 창 클래스를 가져오는 대신 동일한 매개 변수를 가진 여러 CWnd 파생 클래스에 대 한 동일한 창 클래스가 각 클래스를 공유 합니다.이 문제를 일으킬 수는 CS_CLASSDC 클래스 스타일이 사용 됩니다.여러 대신 CS_CLASSDC 창 클래스를 결국 하나로 CS_CLASSDC 창 클래스 및 클래스 공유 같은 DC를 사용 하는 모든 C++ windows.이 문제를 방지 하려면 호출 AfxRegisterClass 클래스를 등록 합니다.

기술 참고를 참조 하십시오. TN001: 창 클래스 등록 창 클래스 등록에 대 한 자세한 내용은, AfxRegisterWndClass 함수.

예제

CString strMyClass;

// load stock cursor, brush, and icon for
// my own window class

try
{
   strMyClass = AfxRegisterWndClass(
      CS_VREDRAW | CS_HREDRAW,
      ::LoadCursor(NULL, IDC_ARROW),
      (HBRUSH) ::GetStockObject(WHITE_BRUSH),
      ::LoadIcon(NULL, IDI_APPLICATION));
}
catch (CResourceException* pEx)
{
   AfxMessageBox(_T("Couldn't register class! (Already registered?)"));
   pEx->Delete();
}

요구 사항

헤더: afxwin.h

참고 항목

참조

CWnd::Create

CWnd::PreCreateWindow

WNDCLASS

AfxRegisterClass

개념

MFC 매크로 전역