Использование 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