PostMessage ComboBox

E

easoftware

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.

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
 
K

Ken Tucker [MVP]

Hi,

Change the longs in the postmessage declare to integers. The dotnet
integer is the same as the vb6 long


Ken
 
E

easoftware

Thanks. It did the trick.

I am still a little confused. In all the searching I did on the
'net, all the old (around 2001 and earlier) examples I found had:

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA"
_
(ByVal hwnd As intptr, _
ByVal wMsg As integer, _
ByVal wParam As integer, _
ByVal lParam As integer) As Boolean

And all the newer examples had the way I declared (that is way I went
this way):

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

Where can I find the documentation on PostMessage?

Eric
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top