Использование GetDlgItemText для получения текста из контрола - VB

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

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

Пытаюсь получить текст из блокнота. GetDlgItemText ничего не передает в буфер. Код ошибки - 0. Помогите разобраться.
GetDlgItem - http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx GetDlgItemText - http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Решение задачи: «Использование GetDlgItemText для получения текста из контрола»

textual
Листинг программы
Option Explicit
 
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
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 Const WM_GETTEXT = &HD
Private Const WM_GETTEXTLENGTH = &HE
 
Private Sub Form_Load()
    Dim H_Parent As Long, H_Control As Long
    Dim strText As String
    Dim lngTextLength As Long
    
    H_Parent = FindWindow("notepad", vbNullString) 'Try with FindWindow
    
    If H_Parent <> 0 Then
        H_Control = FindWindowEx(H_Parent, 0, "edit", vbNullString)
        If H_Control <> 0 Then
            lngTextLength = SendMessage(H_Control, WM_GETTEXTLENGTH, 0, ByVal 0&)
            strText = Space(lngTextLength + 1)
            SendMessage H_Control, WM_GETTEXT, lngTextLength + 1, ByVal strText
            strText = Left(strText, lngTextLength)
        End If
    End If
End Sub

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


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

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

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