محسن شمس
سه شنبه 18 مرداد 1384, 17:17 عصر
بطوری که وقتی من دکمه ای را کلیک کردم
در کادر کومبو باز شود
Hamedm
سه شنبه 18 مرداد 1384, 20:53 عصر
سلام دوست عزیز
این کار بوسیله توابع API براحتی قابل انجام است.
بوسیله تابع زیر میتونید ماوس و یا کیبورد رو شبیه سازی کنید:
Declare Function SendInput Lib "user32.dll" (ByVal nInputs As Long, pInputs As GENERALINPUT, ByVal cbSize As Long) As Long
اگه نیازی بود بگو پارامترهاشو توضیح بدم.
در پناه حق موفق باشید و پرتوان
PalizeSoftware
سه شنبه 18 مرداد 1384, 21:23 عصر
با این کد این کار عملی است:
Private Const CB_SHOWDROPDOWN = &H14F
Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Sub DropDownCombo()
Call SendMessage(Combo1.hwnd, CB_SHOWDROPDOWN, True, 0&)
End Sub
Alirezagoodarzi
سه شنبه 18 مرداد 1384, 23:03 عصر
این کد باعث میشه اگر در text کومبو چیزی وارد کرده باشید ودر لیست موجود باشه علاوه بر باز شدن آن مورد انتخاب بشه.
هر جا خواستید این کار انجام بشه اون را به شکل زیر استفاده کنید.
Drop cmbMoin, True
پارامتر اول نام کومبو مورد نظره
پارامتر دوم هم برای جستجو در لیست
خودم ننوشتم از یک (یادم نیست) گرفتم.
Public Declare Function SendMessageAsString Lib "user32" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Integer, _
ByVal wParam As Long, _
ByVal lParam As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
ByVal hWnd As Long, _
ByVal wMsg As Integer, _
ByVal wParam As Long, _
lParam As Any) As Long
Public Const CB_SHOWDROPDOWN = &H14F
Public Const CB_FINDSTRING = &H14C
Public Const CB_GETDROPPEDSTATE = &H157
Public Const CB_GETDROPPEDWIDTH = &H15F
Public Const CB_SETDROPPEDWIDTH = &H160
Public Const CB_LIMITTEXT = &H141
Public Const CB_SETITEMHEIGHT = &H153
Public Const CB_GETITEMHEIGHT = &H154
Public Function FindString(Combo As Object, ByVal mString As String, SelectIt As Boolean) As Integer
Dim lIndex As Integer
lIndex = SendMessageAsString(Combo.hWnd, CB_FINDSTRING, -1, mString & vbNullString)
FindString = lIndex
If SelectIt = True And Combo.ListCount > 0 Then
Combo.ListIndex = lIndex
End If
End Function
Public Sub SetItemHeight(Combo As Object, ByVal nItem As Integer)
' SendMessage Combo.hwnd, CB_SETITEMHEIGHT, nItem, nHeight
End Sub
Public Function GetEditBoxHeight(Combo As Object) As Long
'ret& = SendMessage(Combo.hwnd, CB_GETITEMHEIGHT, -1, 0)
'GetEditBoxHeight = ret&
End Function
Public Function SetEditBoxHeight(Combo As Object, ByVal nHeight As Long) As Long
SetEditBoxHeight = SendMessage(Combo.hWnd, CB_SETITEMHEIGHT, -1, nHeight)
End Function
Public Sub SetMaxLen(Combo As Object, ByVal MaxChars As Long)
If MaxChars > 0 Then
SendMessage Combo.hWnd, CB_LIMITTEXT, MaxChars, 0
Else
SendMessage Combo.hWnd, CB_LIMITTEXT, 0, 0 'reset to default
End If
End Sub
Public Sub SetDroppedWidth(Combo As Object, ByVal nWidth As Integer)
SendMessage Combo.hWnd, CB_SETDROPPEDWIDTH, nWidth, 0
End Sub
Public Function GetDroppedWidth(Combo As Object) As Long
GetDroppedWidth = SendMessage(Combo.hWnd, CB_GETDROPPEDWIDTH, 0, 0)
End Function
Public Function GetDroppedState(Combo As Object) As Boolean
GetDroppedState = SendMessage(Combo.hWnd, CB_GETDROPPEDSTATE, 0, 0)
End Function
Public Sub Drop(ByRef Combo As Object, ByVal n As Boolean)
Call SendMessage(Combo.hWnd, CB_SHOWDROPDOWN, n, ByVal 0&)
End Sub
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.