哪位大侠请告诉我怎样实现combobox的自动下拉

angshuangxi 2000-06-11 07:06:00
...全文
126 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Janven 2000-06-12
  • 打赏
  • 举报
回复
我在http://expert.csdn.net/Topic/10829.shtm中已经解答过这个问题
Public Const CB_SHOWDROPDOWN = &H14F
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'拉下combox
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, True, ByVal 0&
'收起combox
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, False, ByVal 0&


Chen_Lin 2000-06-11
  • 打赏
  • 举报
回复
其实你只要模拟鼠标的点击就可以了.
-------------以下在BAS中定义---------------------------
Public Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Type POINTAPI
X As Long
Y As Long
End Type

Public Const MOUSEEVENTF_LEFTDOWN = &H2 ' left button down
Public Const MOUSEEVENTF_LEFTUP = &H4 ' left button up
-------------------------如下在主程序中------------------------
'注意是象素
X = (Me.Left + Combo1.Left + Combo1.Width - 15) / 15
'这里要加上标题栏的高度
Y = (Me.Top + Combo1.Top + Combo1.Height * 2 - 15) / 15

SetCursorPos X, Y

mouse_event MOUSEEVENTF_LEFTDOWN, X, Y, 0, 0
mouse_event MOUSEEVENTF_LEFTUP, X, Y, 0, 0
--------------------------结束--------------------------

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧