Private Sub Комбо1_Click()
Часы1.Enabled = True
End Sub
Private Sub Часы1_Timer()
Комбо1.SelStart = 0
Часы1.Enabled = False
End Sub
Private Sub Часы1_Timer()
SendKeys "{RIGHT}"
For i = 1 To Len(Комбо1.Text)
SendKeys "+{LEFT}"
Next i
Часы1.Enabled = False
End Sub
Private Sub cbx_Click()
SendKeys "{END}"
SendKeys "+{HOME}"
End Sub
а что если вместо SendKeys использовать SendMessage, указать hWnd комбика, только что запихнуть в Msg, wParam и lParam?
cbx.SelStart = 1
cbx.SelLength = 2
DoEvents
Do
Loop
Option Explicit
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
Private Const VK_HOME = &H24
Private Const VK_SHIFT = &H10
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Private Sub Text1_GotFocus()
Text1.SelStart = Len(Text1.Text)
' SendKeys "+{HOME}"
PostMessage Text1.hwnd, WM_KEYDOWN, VK_SHIFT, 0 ' &H402A0001
PostMessage Text1.hwnd, WM_KEYDOWN, VK_HOME, 0 '&H1470001
PostMessage Text1.hwnd, WM_KEYUP, VK_HOME, 0 '&H1470001
PostMessage Text1.hwnd, WM_KEYUP, VK_SHIFT, 0 '&HC02A0001
End Sub
Space писал(а):MIT, ты вообще понял, о чём тут речь?
Space писал(а):После выбора Item строка в Text выделяется и каретка мигает в конце строки, а мне надо в начале строки и желательно выделение всей строки.
Space писал(а):это для того, чтобы текст был виден сначала, а не с конца, если текст не помещается в поле Text!
Space писал(а):PostMessage тоже не работает. Тест на TextBox
Не понял. Можно поподробнее?Space писал(а):расслабься...
PostMessage cbx.hwnd, WM_KEYDOWN, VK_SHIFT, 0 ' &H402A0001
PostMessage cbx.hwnd, WM_KEYDOWN, VK_HOME, 0 '&H1470001
Option Explicit
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
Private Const VK_HOME = &H24
Private Const VK_SHIFT = &H10
Private Const WM_KEYDOWN = &H100
Private Const WM_KEYUP = &H101
Private Sub cbx_Click()
Debug.Print "cbx_Click"
cbx.SelStart = Len(cbx.Text)
' SendKeys "+{HOME}"
PostMessage cbx.hwnd, WM_KEYDOWN, VK_SHIFT, 0 ' &H402A0001
PostMessage cbx.hwnd, WM_KEYDOWN, VK_HOME, 0 '&H1470001
PostMessage cbx.hwnd, WM_KEYUP, VK_HOME, 0 '&H1470001
PostMessage cbx.hwnd, WM_KEYUP, VK_SHIFT, 0 '&HC02A0001
End Sub
Private Sub cbx_KeyDown(KeyCode As Integer, Shift As Integer)
Debug.Print KeyCode, Shift
End Sub
Private Sub Form_Load()
cbx.Text = ""
cbx.AddItem "1234567890"
cbx.AddItem "0987654321"
End Sub
Там у него закомментированые значения - полученные субклассингом, специально чтобы не запутаться в слишком уж запутанной структуре и не гадать, от чего же код не работает.
Сейчас этот форум просматривают: Google-бот и гости: 44