Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Please HELP! (Form зная hWnd) / 8 сообщений из 8, страница 1 из 1
10.10.2006, 16:35
    #34044977
Rustygold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
Помогите, плз.

Знаю hWnd одной из своих форм. Форма крутиться в другом потоке (Thread).

Нужно зная hWnd формы добраться до её контролов (например к Textbox).

что-нибудь типа: Set frm = some_function(hWnd)
...
Рейтинг: 0 / 0
10.10.2006, 17:08
    #34045075
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
Объект Form как и контролы - внутренние объекты вб. Никакой связи дескрипторов с какими-то левыми приватными объектами нет. Только перебрать коллекцию Forms и проверить hwnd ее членов.
...
Рейтинг: 0 / 0
10.10.2006, 17:19
    #34045101
Rustygold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
Ok. К контролам добрался через SendMessage

А как запустить Public Sub формы, зная её hWnd, да ещё передав в неё параметры ?
...
Рейтинг: 0 / 0
10.10.2006, 17:44
    #34045193
sqlru-sqlru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
RustygoldOk. К контролам добрался через SendMessage

А как запустить Public Sub формы, зная её hWnd, да ещё передав в неё параметры ?
А Public Sub ты не запустишь если это не ActiveX, тем более в другом потоке. Если бы в своем да для формы из dll то возможно.
p.s. Всегда удивлялся таким мечтателям
...
Рейтинг: 0 / 0
10.10.2006, 17:45
    #34045200
sqlru-sqlru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
sqlru-sqlru RustygoldOk. К контролам добрался через SendMessage

А как запустить Public Sub формы, зная её hWnd, да ещё передав в неё параметры ?
А Public Sub ты не запустишь если это не ActiveX, тем более в другом потоке. Если бы в своем да для формы из dll то возможно.
p.s. Всегда удивлялся таким мечтателям
Если делать средствами WinAPI (ну типа там SendMessage)
...
Рейтинг: 0 / 0
10.10.2006, 18:16
    #34045324
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
забудь об этой гиблой идее, ничего путного не выйдет
...
Рейтинг: 0 / 0
11.10.2006, 02:36
    #34045854
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
Rustygold,
можно хранить ссылку на форму через
Код: plaintext
1.
'В форме класса Form1
SetWindowLong(Me.hWnd, GWL_USERDATA, ObjPtr(Me))
, затем читая её через
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
'В месте использования
Dim frm As Form1
ptrObject = GetWindowLong(hWnd, GWL_USERDATA)
CopyMemory frm, ptrObject,  4 
'пользуемся методами frm
frm.MyPublicMethod Param1, Param2
'Очищаем ссылку
CopyMemory frm,  0 &,  4 
, либо, передавая ссылку через свойства окна, используя API функции GetProp/SetProp. Фактически в каждом примере по subclassing-у применяется один из этих методов.
Но что будет в многопоточном приложении - надо смотреть.
...
Рейтинг: 0 / 0
12.10.2006, 16:58
    #34051379
Rustygold
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Please HELP! (Form зная hWnd)
Бенедикт

Спасибо
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Please HELP! (Form зная hWnd) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]