본문 바로가기

Window Programming/VB

비베에서 서브클래스 안전하게 사용하기

서브클래싱을 사용해
제가 수많은 기능을 구현해본결과 서브클래스를 사용하는 법을 나름대로는 알 것 같습니다.

비베에서 서브클래스 사용시
주의점을 몇개 말씀드리겠습니다.

1. 아래 형식을 꼭 준수해주시기 바랍니다.
Private Function WindowProc(ByVal hWnd&, ByVal iMsg&, ByVal wParam&, ByVal lParam&) As Long  '이 줄 잘못 쓰면 비베 강제 종료
'추천 메시지 처리 형식
'리턴값 반환을 MSDN에서 정해준 방식으로 해줄것을 권함
    Select Case iMsg
    Case Else
        WindowProc = CallWindowProc(defWindowProc, hWnd, iMsg, wParam, lParam)
    End Select
End Function

2. 폼모듈이나 객체 지정 제대로 할것
frm.mMenu.caption=""
이렇게 안하고 mMenu.caption="" 하면 비베가 100% 죽습니다.

3.  서브 클래스 시 디버그 법
서브 클래스 실행시 별 시덥잖은 이유로 막 강제 종료되면 대책이 안 섭니다.
이럴 때는 수상한 부분을 주석 처리하면서 재실행 강제 종료를 반복하다 보면 수상한 것이 나옵니다.

이밖에 여러가지가 있겠지만 제가 아는 것은 이 정도입니다.
더 있을 것 같지만 생각이 안나네요~~ 그럼..

ps. 제가 말하는 강제 종료란 비베가 갑자기 사라지는 현상을 말합니다.