G
Guest
In my ComboBox, I am trying to post the CBN_EDITCHANGE message after the
CBN_SELCHANGE is received, but I am having no luck. I can trap for the
CBN_SELCHANGE message, but I cannot post the CBN_EDITCHANGE message. I think
my PostMessage parameters are wrong, but I cannot find what they should be.
Any help would be greatly appreciated. Thanks.
Here is my code. I am using VS 2003 and Visual Basic.
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Protected Overrides Sub WndProc(ByRef m As Message)
MyBase.WndProc(m)
Const CBN_SELCHANGE As Int32 = &H1
Const CBN_EDITCHANGE As Int32 = &H5
Const CBN_EDITUPDATE As Int32 = &H6
Const CBN_CLOSEUP As Int32 = &H8
Const CBN_SELENDOK As Int32 = &H9
Const WM_COMMAND As Int32 = &H111
Const WM_USER As Int32 = &H400
Const OCM__BASE As Int32 = WM_USER + &H1C00
Const OCM_COMMAND As Int32 = OCM__BASE + WM_COMMAND
If m.Msg = OCM_COMMAND Then
Dim CbAction As Int32 = (m.WParam.ToInt32 >> 16) ' combobox
action
Select Case CbAction
Case CBN_SELCHANGE
PostMessage(Me.Handle.ToInt32, OCM_COMMAND,
CBN_EDITCHANGE << 16, 0)
Case CBN_EDITCHANGE
Case CBN_CLOSEUP
Case CBN_SELENDOK
End Select
End If
End Sub
CBN_SELCHANGE is received, but I am having no luck. I can trap for the
CBN_SELCHANGE message, but I cannot post the CBN_EDITCHANGE message. I think
my PostMessage parameters are wrong, but I cannot find what they should be.
Any help would be greatly appreciated. Thanks.
Here is my code. I am using VS 2003 and Visual Basic.
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Protected Overrides Sub WndProc(ByRef m As Message)
MyBase.WndProc(m)
Const CBN_SELCHANGE As Int32 = &H1
Const CBN_EDITCHANGE As Int32 = &H5
Const CBN_EDITUPDATE As Int32 = &H6
Const CBN_CLOSEUP As Int32 = &H8
Const CBN_SELENDOK As Int32 = &H9
Const WM_COMMAND As Int32 = &H111
Const WM_USER As Int32 = &H400
Const OCM__BASE As Int32 = WM_USER + &H1C00
Const OCM_COMMAND As Int32 = OCM__BASE + WM_COMMAND
If m.Msg = OCM_COMMAND Then
Dim CbAction As Int32 = (m.WParam.ToInt32 >> 16) ' combobox
action
Select Case CbAction
Case CBN_SELCHANGE
PostMessage(Me.Handle.ToInt32, OCM_COMMAND,
CBN_EDITCHANGE << 16, 0)
Case CBN_EDITCHANGE
Case CBN_CLOSEUP
Case CBN_SELENDOK
End Select
End If
End Sub