윈도우 프로그래밍

MFC 커스텀컨트롤에서 CWnd의 OnCreate 불리지 않는 문제 해결법

하늘흐늘 2022. 3. 9. 18:38
반응형

MFC의 커스텀컨트롤은 생성되기 전에는 서브클래싱이 일어나지 않습니다. 그런 관계로 커스텀컨트롤에 대입된 CWnd 상속 객체의 WM_CREATE메세지에 대한 대응 함수인 OnCreate가 호출되지 않습니다. 물론 서브클래싱이 일어난 이후에는 모든 메세지에 대한 CWnd 함수가 정상적으로 호출됩니다.
그런데 커스텀컨트롤에서 차일드 컨트롤을 만드는 일과 같이 OnCreate에서 하면 좋은 작업이 있습니다. 이럴 때는 CWnd의 PreSubclassWindow 함수를 재정의하고 여기에서 해주면 됩니다.

관련 참고는 아래와 같습니다.
why oncreate() not called 

 

반응형