PostMessage ComboBox

  • Thread starter Thread starter easoftware
  • Start date Start date
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
 
Hi,

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


Ken
 
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

Back
Top