Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Добраться до элемента класса QWidget (https://forum.antichat.xyz/showthread.php?t=139304)

slesh 04.09.2009 11:04

Добраться до элемента класса QWidget
 
Столкнулся с одной проблемкой.
Есть окно (чужое) оно имеет класс QWidget
при этом в окне есть кнопки и различного рода контролы. Но все они принадлежат классу QWidget
т.е. и класс QWidget и хендл одинаковые.
И там есть одна кнопка которая находится в неактивном состоянии и необходимо сделать её активной.

просто с QT както не работал.

razb 04.09.2009 13:56

немного не понятен вопрос ))
Если ты все виджеты на форме создавал руками, то в твоем классе должны быть указатели на них, или же если ты создавал форму через дизайнер то твой класс либо будет производным от класса формы либо будет содержать указатель на форму с виджетами.

slesh 04.09.2009 18:28

>>>> Есть окно (чужое) оно имеет класс QWidget <<<<<
Это совершенно левая программа(нет исходников) и я незнаю как и что там устроено. И через WinAPI или QT мне както нужно разблокировать кнопку.

St0nX 04.09.2009 19:04

Попробуй перебирать все элементы формы и поочередно пытаться разблокировать их. И чё то про хендлы понял. У всех кнопок 1 что ли? =\

slesh 04.09.2009 23:22

Если бы было так всё просто то не писалбы сюда.
В тото и дело что вся форма - это типа литой элемент.
Типа как в Опере поле страниц - там тоже есть разные элементы но при этом это единый компонент. Но в моём случае - вся программа единый компонент, кроме меню.

flacs 04.09.2009 23:37

slesh, помню как то столнкнулся с такой же проблемой
Если WindowFromPoint не прокатит, то сделать уже ничего нельзя,
не поможет не перечисление потомков окна, ни даже полный перебор всех окон (0..FFFFFFFF) ... этот элемент управления просто напросто не имеет хендла

Эксперемнтировал в Delphi, создал панельку, а на ней SpeedButton(TSpeedButton) -> TGraficsControl

В инете есть совет что через метод perform этого класса, позволяет отсылать сообщения ему (но это через VCL =().

slesh 05.09.2009 09:37

тут всё дело в том что это не VCL а QT
WindowFromPoint выдает один и тотже хендл и класс для любого элемента формы.


Время: 08:09