- Posted
- Filed under 컴퓨터
이 ActiveX 라이브러리는 VB Accelerator에서 배포하는 것으로 VB에서 가장 문제가 되는 Window Message 가로채기 기법을 적용할 때의 디버깅 문제를 해결해 줍니다.
(제 개인적으로 이 라이브러리를 많이 사용해봤는데 여러 폼들에서 동시에 다중 서브클래싱을 하고 있는 경우는 불안정한 경우도 있더군요)
사용법 :
일단 아래의 파일을 다운로드하여 시스템 폴더에 복사하고 regsvr32로 구성요소 등록을 해 줍니다.
프로젝트에서 참조로 추가한 다음 원하는 클래스 모듈(폼 모듈을 보통 쓰죠)에서 다음과 같이 합니다.
[CODE] Implements ISubclass Private Sub Form_Load() ' 또는 Class_Initialize 등 AttachMessage Me, hwndoftargetwindow, WM_PAINT End Sub Private Sub Form_Unload(Cancel As Integer) ' 또는 Class_Terminate 등 DetachMessage Me, hwndoftargetwindow, WM_PAINT End Sub Private Property Let ISubclass_MsgResponse(ByVal RHS As SSubTimer6.EMsgResponse) '.. End Property Private Property Get ISubclass_MsgResponse() As SSubTimer6.EMsgResponse <font color=#FF7635>ISubclass_MsgResponse = emrPostProcess</font> End Property Private Function ISubclass_WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Select Case iMsg Case WM_PAINT End Select End Function [/CODE]
위와 같이 사용하는 것입니다.
중간에 부분에서 PostProcess의 경우는 원래의 윈도우 프로시저가 처리한 다음 ISubClass_WindowProc이 실행되는 것이고, PreProcess는 그 반대, 그리고 Consume은 원래 프로시저 없이 이것만으로 처리합니다. (Consume을 사용할 때 가장 조심해야겠죠)
(제 개인적으로 이 라이브러리를 많이 사용해봤는데 여러 폼들에서 동시에 다중 서브클래싱을 하고 있는 경우는 불안정한 경우도 있더군요)
사용법 :
일단 아래의 파일을 다운로드하여 시스템 폴더에 복사하고 regsvr32로 구성요소 등록을 해 줍니다.
프로젝트에서 참조로 추가한 다음 원하는 클래스 모듈(폼 모듈을 보통 쓰죠)에서 다음과 같이 합니다.
[CODE] Implements ISubclass Private Sub Form_Load() ' 또는 Class_Initialize 등 AttachMessage Me, hwndoftargetwindow, WM_PAINT End Sub Private Sub Form_Unload(Cancel As Integer) ' 또는 Class_Terminate 등 DetachMessage Me, hwndoftargetwindow, WM_PAINT End Sub Private Property Let ISubclass_MsgResponse(ByVal RHS As SSubTimer6.EMsgResponse) '.. End Property Private Property Get ISubclass_MsgResponse() As SSubTimer6.EMsgResponse <font color=#FF7635>ISubclass_MsgResponse = emrPostProcess</font> End Property Private Function ISubclass_WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Select Case iMsg Case WM_PAINT End Select End Function [/CODE]
위와 같이 사용하는 것입니다.
중간에 부분에서 PostProcess의 경우는 원래의 윈도우 프로시저가 처리한 다음 ISubClass_WindowProc이 실행되는 것이고, PreProcess는 그 반대, 그리고 Consume은 원래 프로시저 없이 이것만으로 처리합니다. (Consume을 사용할 때 가장 조심해야겠죠)