下面这个能成功选中一个选项:
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)
非常想学,请大家指导!
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)
非常想学,请大家指导!
解决方案 »
- 我编的端口扫描器为什么扫描不到开放的端口??
- 如果表的字段过多怎么把两个表连接起来!!
- 哪里可以上传供下载
- 出现错误提示:缺少case 怎么回事啊
- 最近在旧书架上无意发现一本书,关于如何使用OOP的,强烈推荐!
- 打包的问题,msado21.tlb是什么作用?
- dim myRs as recordset与dim myRs as adodb.recordset有无区别?
- 大家帮忙看看Data1.RecordSource = "select * from 时刻表 where 出发时间 => CDate(kdate1) and 到达时间 <= CDate(kdate3)"这段代码对吗?怎样写查找一定范围内时间的代码呢?
- 请问用vb程序如何实现htm文件中的form表单提交功能?
- 求助:之前运行没有问题,后来重装系统重装office就报错:应用程序定义或对象定义错误1004
- msdn在哪有的下载?感谢大侠们
- 问一个问题:如何用代码控制动态添加从system.windows.form派生的控件到窗体?
中,要注意数值进制!
CBN_SELCHANGE * 65536 是把 CBN_SELCHANGE转换成10进制高位
VB中,GetDlgCtrlID(Combo1.hwnd), 返回的应该是16进制
所以会出错
还有,在有些程序中,选择项改变后,有些处理不一定产生CBN_SELCHANGE进行的(也就是说,有些处理,不是在这里进行的,而有可能是在CBN_SELENDOK中进行处理)
别的调用,应该没有问题:)
就我的测试代码,GetDlgCtrlID(Combo1.hwnd)=4,
CBN_SELCHANGE * 65536 = 1*65536 = 65536,两者之和为 65540,用这个值直接代入,
返回值还是等于0(req=0)。
还是希望再指点^_^
还有,你试一下,用H90004代入一下试试(CBN_SELENDOK+Combo1ID)
如果方便,可以把程序发给我测试一下:[email protected]