Label hwnd

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
AyaAya
Начинающий
Начинающий
 
Сообщения: 18
Зарегистрирован: 08.01.2005 (Сб) 18:54

Label hwnd

Сообщение AyaAya » 27.02.2005 (Вс) 14:34

Есть прога(исходников нет, прога на с++), на ней label с динамическими данными.
Вопрос: как получить текст label а зная только hwnd формы.

Желательно с примером

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 27.02.2005 (Вс) 14:55

ну один из способов узнать hwnd лэйбла - перебрать все дочерние контролы окна (можно попутно запрашивать стили окна - если это лэйбл то там что-то вроде WS_STATIC'а должно присутствовать), а потом GetWindowText() и т.д...

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 27.02.2005 (Вс) 14:57

а если идентификатор ресурса лэйбла (IDC_...) известен, то использовать GetDlgItem():

hwnd = ::GetDlgItem(id_лэйбла);

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.02.2005 (Вс) 15:31

Arcanoid, лейбл - не окно. У него нет hWnd.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.02.2005 (Вс) 15:33

Читай внимательно первый пост :)
Прога на C++, значит STATIC, и значит окно :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.02.2005 (Вс) 15:40

Прога на C++ - это ещё ничего не значит. IE написан на C++, а в области просмотра окон нету вообще :shock:
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.02.2005 (Вс) 15:47

"Услышав топот копыт, предлолагайте, что это лошадь, а не зебра" :wink:
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.02.2005 (Вс) 16:21

GSerg писал(а):"Услышав топот копыт, предлолагайте, что это лошадь, а не зебра" :wink:
Рулез! :-)


(умолкаю)
Изображение

Arcanoid
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 162
Зарегистрирован: 01.01.2005 (Сб) 15:44

Сообщение Arcanoid » 27.02.2005 (Вс) 22:44

tyomitch
Визуальные контролы в окне - дочерние окна и у каждого есть свой hWnd (на С++ по крайней мере)!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.02.2005 (Вс) 22:59

Arcanoid писал(а):tyomitch
Визуальные контролы в окне - дочерние окна и у каждого есть свой hWnd (на С++ по крайней мере)!

Прекрасно. Открой в IE любую страницу, где побольше кнопочек и edit-ов, и пройдись по нему spy-ем. Вот и увидишь, у каждого или не у каждого ;-)
Изображение

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 28.02.2005 (Пн) 1:16

Arcanoid писал(а):а если идентификатор ресурса лэйбла (IDC_...) известен, то использовать GetDlgItem():

hwnd = ::GetDlgItem(id_лэйбла);


Если идентификатор известен, то незачем и GetDlgItem вызывать.
Сразу GetDlgItemText

Arcanoid писал(а):дочерние окна и у каждого есть свой hWnd


Это что, аксиома? Что всё внутри окна есть дочерние окна?
А если я сам нарисую на hDC родителя кнопку, откуда у неё возьмется hWnd?

Или если нет там никакого статика, обычным DrawText'ом выводится в hDC родителя информация, то тут как считать информацию?
Только перехватывать вызов DrawText и смотреть, что ей передают в буфере.

Ruslan Demidow
Мужчина!
Мужчина!
Аватара пользователя
 
Сообщения: 987
Зарегистрирован: 25.03.2004 (Чт) 13:39
Откуда: N.Novgorod

Сообщение Ruslan Demidow » 28.02.2005 (Пн) 10:14

Я обычно, если нужно получать текст из чужих программ (вернее посмотреть текст конкретного контрола) использую свою маленькую программку (она очень и очень сыра, но, имхо, её основная идея проста и помогает во многи случаях). Она отображает мне и все контролы на форме чужого окна и текст этих контролов и ID контрола.
Вложения
GetCtrlId.rar
(9.08 Кб) Скачиваний: 48
Это Ж-ж-ж-ж неспроста (с) Винни-Пух


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 123

    TopList  
cron