下面这个能成功选中一个选项:
    req = SendMessage(Combo1.hwnd, CB_SETCURSEL, 5, ByVal 0&)但这条却没有触发ComboBox的_Click事件:    
    req = SendMessage(Me.hwnd, WM_COMMAND, CBN_SELCHANGE * 65536 + GetDlgCtrlID(Combo1.hwnd), Combo1.hwnd)
非常想学,请大家指导!

解决方案 »

  1.   

    req = SendMessage(Me.hwnd, WM_COMMAND, CBN_SELCHANGE * 65536 + GetDlgCtrlID(Combo1.hwnd), Combo1.hwnd)
    中,要注意数值进制!
    CBN_SELCHANGE * 65536 是把 CBN_SELCHANGE转换成10进制高位
    VB中,GetDlgCtrlID(Combo1.hwnd), 返回的应该是16进制
    所以会出错
    还有,在有些程序中,选择项改变后,有些处理不一定产生CBN_SELCHANGE进行的(也就是说,有些处理,不是在这里进行的,而有可能是在CBN_SELENDOK中进行处理)
    别的调用,应该没有问题:)
      

  2.   

    感谢你的回帖!
    就我的测试代码,GetDlgCtrlID(Combo1.hwnd)=4,
    CBN_SELCHANGE * 65536 = 1*65536 = 65536,两者之和为 65540,用这个值直接代入,
    返回值还是等于0(req=0)。
    还是希望再指点^_^
      

  3.   

    你试一下用H10004代入如何?
    还有,你试一下,用H90004代入一下试试(CBN_SELENDOK+Combo1ID)
    如果方便,可以把程序发给我测试一下:[email protected]