Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > SetWindowText


Автор: bom 18.7.2005, 19:54
На вас отцы уповаю. Проблема такая: надо из своей проги изменить\установить текст в текстбоксе другой проги, почему то не получается. Делаю с помощью SetWindowText, hwnd меняемого текстбокса известен.
Если проделываю тоже, но с текстбоксами своей программы, расположенных как в дочерних так и в родительских окнах, то все ОК.

Код

Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String) As Long

Sub()
Dim MyStr As String
MyStr = String(Len("abcd"), Chr$(0))
MyStr = "abcd"
SetWindowText myHwnd, MyStr
'где myHwnd - известный hwnd подлежащего изменению окна
End sub

Автор: cardinal 18.7.2005, 21:30
Может это поможет...
http://forum.vingrad.ru/index.php?showtopic=20250

Автор: bom 18.7.2005, 23:06
Спасибо, счас начну разбираться. smile

Автор: bom 19.7.2005, 01:29
Ссылка cardinalа помогла, еще раз благодарю. Там используется SendMessage
Код

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
Sub()
SendMessage myHwnd, &HC, 0, ByVal "Helo world!"
'где myHwnd - известный hwnd подлежащего изменению окна
End sub


С SetWindowText так и не получилось, что интересно, заголовки чужих окон с его помощью тоже меняются без проблем, а вот окна класса "Edit" (текстбоксы) - не хотят. Если кто знает в чем тут дело, поделитесь секретом плиз.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)