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

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

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

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

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

textual
Листинг программы
  1. Option Explicit
  2.  
  3. 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
  4. 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
  5. Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
  6.  
  7. Private Const GW_HWNDNEXT As Long = 2
  8. Private Const WM_USER = &H400
  9. Private Const UDM_SETPOS32 = WM_USER + 113
  10. Private Const UDM_GETPOS32 = WM_USER + 114
  11. Private Const WM_SETTEXT As Long = &HC
  12.  
  13. Private Sub Form_Load()
  14.     Dim hwnd    As Long
  15.    
  16.     hwnd = FindWindowEx(0, 0, "TFormSaveOption", vbNullString)
  17.     hwnd = FindWindowEx(hwnd, 0, "TGroupBox", "Save format")
  18.     hwnd = FindWindowEx(hwnd, 0, "TUpDown", vbNullString)
  19.    
  20.     SetArbitraryValue hwnd, 0
  21.    
  22. End Sub
  23.  
  24. Private Function SetArbitraryValue(ByVal hWndUpDown As Long, _
  25.                                    ByVal Value As Long) As Long
  26.     Dim hwndTxt As Long
  27.    
  28.     hwndTxt = GetWindow(hWndUpDown, GW_HWNDNEXT)
  29.     SendMessage hWndUpDown, UDM_SETPOS32, 0, ByVal Value
  30.     Value = SendMessage(hWndUpDown, UDM_GETPOS32, 0, ByVal 0&)
  31.     SendMessage hwndTxt, WM_SETTEXT, 0, ByVal CStr(Value)
  32.    
  33. End Function

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


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

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

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы