|
web
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
PostMessage ComboBoxthe 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 -------------------- <easoftw***@gmail.com> wrote in message Show quoteHide quote news:1139018732.461940.120440@f14g2000cwb.googlegroups.com... > 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 > 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 <easoftw***@gmail.com> schrieb
> Where can I find the documentation on PostMessage? Menu Help -> Index, type "postmessage"Armin
Printing using margins
Subclassed Textbox OnLeave Overrides StreamWriter and BinaryWriter (same problem better explained) StreamWriter and BinaryWriter Dynamic controls, menuitems, windowlist Advice needed on programming style Variable declarations.... in VB.Net IIS Allowing access to controls from another thread accessing blob fileds from oracle |
|||||||||||||||||||||||