Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Дочерние контролы дочерних контролов :-) [D7, WinXP]


Страницы:   1 2

gdaujk ©   (2005-05-28 04:54:00) 

Я создаю главное окно приложения, а в нём, GroupBox. Далее я создаю элемент управления (напимер кнопку), для которого родительским окном будет не главное окно, а GroupBox. Скажите, как мне теперь обрабатывать сообщения от этой кнопки? Главное окно их вроде не получает. Пробовал создать процедуру обработки событий для GroupBox, но ничего не вышло :-(.

Поможите чем можете и родина вас не забудет :-)


Marser   (2005-05-28 15:37:00) [21]


> gdaujk ©   (28.05.05 14:19) [5] [Новое
>сообщение][Ответить]
> Как обработать сообщения от кнопки, описанной в
> вопросе ?

А почему с GroupBox не вышло?
В крайнем случае можно заменить обработчик.


gdaujk   (2005-05-28 14:19:00) [22]

Как обработать сообщения от кнопки, описанной в вопросе ?


gdaujk   (2005-05-28 12:17:00) [23]

>tesseract [2]

OnClick у тебя указатель?

Я пишу на API, ни каких OnClick нету. Оконную процедуру, на сколько я понимаю, можно заменить только с помощью SetWindowLong. Это при использовании VCL (TButton) можно просто присвоить свойствуOnClick адрес новой процедуры. Но OnClick - это ни как не оконная процедура.

Вообще не в этом вопрос. Вопроса два:
1). У какого контрола заменять процедуру?
2). Какое сообщение обрабатывать?

Или один общий вопрос: как обработать сообщения от кнопки, описанной в вопросе ?


gdaujk   (2005-05-28 11:53:00) [24]

>-=XP=- [1]

То есть ты предлагаешь мне всё-таки писать процедуру обработки событий для GroupBox? Это можно, толко каких событий? Я посмотрел с помощью WinSight'а, GroupBox получает при нажатии кнопочки уйму сообщений. На сколько я понял, в этой уйме главное WM_PARENTNOTIFY, но не несёт информащии об ID/HWND нажатой кнопки.

А вот кнопочка оная получает WM_LBUTTONDOWN / UP. Может мне попробовать приделать оконную процедуру именно к ней? Вариант по-моему не плохой: для всех кнопок в GroupBox'е написать одну процедуру, и обрабатывать в ней WM_LBUTTONDOWN / UP.

Подскажите, в каком направлении двигаться.


tesseract   (2005-05-28 11:29:00) [25]

в Delphi есть RTTI. Благодяря которому можно динамически переназначать методы объектов. В твоём случае примерно так:

MyButtonsArray[MyButtonIndex].OnClick:=MyButtonClickHandlerProc


-=XP=-   (2005-05-28 10:56:00) [26]

Кнопка (BUTTON) - тоже окно.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо