글로벌 서브클래싱

세계적으로 창 클래스를 하위 클래스를 클래스의 창 핸들을 응용 프로그램에 있어야 합니다. 응용 프로그램 핸들 서브 클래스를 제거 해야 합니다. 핸들을 가져오려면 응용 프로그램은 일반적으로 서브클래싱된 수 클래스의 숨겨진된 창을 만듭니다. 핸들을 얻은 후 응용 프로그램 핸들, GCL_WNDPROC 플래그 및 하위 프로시저의 주소를 지정 하는 SetClassLong 함수를 호출 합니다. SetClassLong 클래스에 대 한 원래 창 프로시저의 주소를 반환합니다.

원래 창 프로시저 주소 글로벌 서브클래싱 인스턴스 서브클래싱에 사용 하는 동일한 방법으로 사용 됩니다. 하위 프로시저를 CallWindowProc를 호출 하 여 원래 창 프로시저에 메시지를 전달 합니다. 응용 프로그램은 원래 창 프로시저 주소, GCL_WNDPROC 플래그 서브클래싱된 되 고 클래스의 창 핸들을 지정 하 여 호출 SetClassLong 다시 창 클래스에서 서브 클래스를 제거 합니다. 신청서는 세계적으로 서브 클래스 컨트롤 클래스를 제거 해야 합니다 하위 클래스 때 응용 프로그램이 종료; 그렇지 않으면, 복구할 수 없는 시스템 오류가 발생할 수 있습니다.

글로벌 서브클래싱 인스턴스 서브클래싱 동일한 제한이 더하기 몇 가지 추가적인 제한 사항이 있다. 응용 프로그램 클래스 또는 창 인스턴스 중 하나에 대 한 원래 창 프로시저 사용을 정확 하 게 알지 않고 여분의 바이트를 사용 하지 마십시오. 응용 프로그램 창으로 데이터를 연결 해야 합니다, 그것은 창 속성을 사용 해야.

 

Index