사용자 지정 컨트롤

응용 프로그램에서 미리 정의 된 컨트롤 지원 하지 않는 작업을 수행 하는 사용자 지정 컨트롤을 만들 수 있습니다. Win32 API는 다음과 같은 방법으로 사용자 지정 컨트롤을 만들 제공:

소유자가 그린 컨트롤을 사용 하 여

단추, 목록 상자 및 콤보 상자에는 소유자가 그린 스타일 사용할 컨트롤을 그려야 하는 때마다 부모 창에 메시지를 보낼 컨트롤을 직접 있다. 이 기능은 컨트롤의 모양을 변경 하는 응용 프로그램을 허용 합니다. 단추에 대 한 소유자 그린 스타일 시스템 전체 컨트롤을 그립니다 하는 방법을 영향을 미칩니다. 목록 상자와 콤보 상자에 대 한 부모 창 컨트롤 내의 항목을 그립니다 및 컨트롤 자체 윤곽선을 그립니다. 예를 들어, 응용 프로그램 수 목록 상자를 사용자 지정 목록에 있는 각 항목 옆에 작은 비트맵을 표시.

응용 프로그램으로 지정할 수 목록 상자, 콤보 상자 및 단추 소유자 위주 컨트롤 적절 한 스타일으로 만들어. 컨트롤에 소유자가 그린 스타일, 시스템 처리 컨트롤에 대 한 사용자의 상호 평소와 같이, 사용자가 버튼을 선택 하는 경우를 감지 하 고 이벤트의 버튼의 소유자에 게 알리는 등의 작업을 수행 합니다. 그러나, 컨트롤 하는 것이 그린 소유자 이므로, 컨트롤의 부모 창 컨트롤의 시각적 모양에 대 한 책임입니다. 소유자 위주 컨트롤에 대 한 자세한 내용은 소유자가 그린 단추, 소유자가 그린 목록 상자소유자가 그린 콤보 상자 를 참조 하십시오.

기존 컨트롤의 창 클래스를 서브클래싱하 면

기존 컨트롤을 서브클래싱하는 사용자 지정 컨트롤을 만드는 또 다른 방법입니다. 하위 클래스 프로시저는 선택한 동작에 영향을 주는 이러한 메시지를 처리 하 여 컨트롤의 선택 된 동작을 변경할 수 있습니다. 다른 모든 메시지는 컨트롤에 대 한 원래 창 프로시저에 전달합니다. 예를 들어, 응용 프로그램에 표시할 수 텍스트 옆에 작은 비트맵 읽기 전용, 단일 줄 편집 컨트롤 컨트롤을 서브클래싱하 여 처리는 WM_PAINT 메시지. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 창 프로시저 서브클래싱.

응용 프로그램 하위 미리 정의 된 컨트롤을 수 있습니다, 하지만 컨트롤의 동작의 다른 모든 측면을 제공 하기 위해 컨트롤의 창 프로시저에 의존 합니다. 컨트롤의 동작에 대 한 자세한 내용은 미리 정의 된 컨트롤에 대 한 개별 항목을 참조 하십시오.

응용 프로그램 정의 창 클래스 구현

사용자 지정 컨트롤에 대 한 응용 프로그램 정의 창 클래스를 등록 하기 위한 과정은 일반 창 클래스 등록에 대 한 동일 합니다. 또는 대화 상자 템플릿을 CreateWindowEx 함수에서 창 클래스의 이름을 지정 하는 사용자 지정 컨트롤 만들기 각 클래스는 고유 이름, 해당 창 프로시저 및 기타 정보가 있어야.

최소한 창 프로시저에서 컨트롤을 그립니다. 응용 프로그램 사용자 유형 정보 수 있도록 컨트롤을 사용 하는 경우 창 프로시저에서 키보드와 마우스 입력된 메시지를 처리 하 고 부모 창에 알림 메시지를 보냅니다. 또한, 컨트롤 제어 메시지를 지 원하는 창 프로시저 부모 창이 나 다른 창을 그것에 보낸 메시지를 처리 합니다. 컨트롤이 키보드 입력을 처리 하는 특정 방식에서으로 대화 상자 대화 상자를 직접 보낸 WM_GETDLGCODE 메시지를 처리 하는 예를 들어에 종종.

 

Index