Послать сообщение элементу управления в другую программу зная его хендл - VB

Узнай цену своей работы

Формулировка задачи:

Доброго дня суток всем Разбираюсь с управлением внешней программой. Разобрался с заполнением текстовых полей, нажатием на кнопки (опции тоже подчиняются) Не могу справиться с TUpDown Окно нашел. Какие ему посылать сообщения для управления значением?

Решение задачи: «Послать сообщение элементу управления в другую программу зная его хендл»

textual
Листинг программы
Option Explicit
 
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 Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
 
Private Const GW_HWNDNEXT As Long = 2
Private Const WM_USER = &H400
Private Const UDM_SETPOS32 = WM_USER + 113
Private Const UDM_GETPOS32 = WM_USER + 114
Private Const WM_SETTEXT As Long = &HC
 
Private Sub Form_Load()
    Dim hwnd    As Long
    
    hwnd = FindWindowEx(0, 0, "TFormSaveOption", vbNullString)
    hwnd = FindWindowEx(hwnd, 0, "TGroupBox", "Save format")
    hwnd = FindWindowEx(hwnd, 0, "TUpDown", vbNullString)
    
    SetArbitraryValue hwnd, 0
    
End Sub
 
Private Function SetArbitraryValue(ByVal hWndUpDown As Long, _
                                   ByVal Value As Long) As Long
    Dim hwndTxt As Long
    
    hwndTxt = GetWindow(hWndUpDown, GW_HWNDNEXT)
    SendMessage hWndUpDown, UDM_SETPOS32, 0, ByVal Value
    Value = SendMessage(hWndUpDown, UDM_GETPOS32, 0, ByVal 0&)
    SendMessage hwndTxt, WM_SETTEXT, 0, ByVal CStr(Value)
    
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы