Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
Select Case hWnd
Case GetDlgItem(hMainWnd,EditBox1)
If dwMsg=WM_KEYDOWN And wParam=VK_RETURN Then
'何らかの処理
MainWndProc=1
End If
MainWndProc=CallWindowProc(lpOldWndProc[0],hWnd,dwMsg,wParam,lParam)
Case Else
MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
End Select
End Function
'サブクラス化で差し替えるウィンドウプロシージャ
Function SubclassProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
If dwMsg=WM_KEYDOWN And wParam=VK_RETURN Then
'何もしない
SubclassProc=0
Exit Function
End If
'元のウィンドウプロシージャを呼ぶ
SubclassProc=CallWindowProc(OldProc,hWnd,dwMsg,wParam,lParam)
End Function
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
OldProc=SetWindowLong(GetDlgItem(hMainWnd,EditBox1),
GWL_WNDPROC,
AddressOf(SubclassProc) As LONG_PTR
) As VoidPtr
End Sub