32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
1 | |
Как сделать свой GroupBox?12.02.2015, 16:37. Показов 2420. Ответов 16
Метки нет (Все метки)
Нарисвовал свой контрол GroupBox, всё норм, кроме одного, контролы нарисование внутри GroupBox - неактивные, как исправить?
0
|
12.02.2015, 16:37 | |
Ответы с готовыми решениями:
16
Как привязать кнопки к GroupBox? Как правильно создать панель GROUPBOX? Сделать свой генератор случайных чисел Как сделать GroupBox? |
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|
12.02.2015, 18:54 | 2 |
скажи им: EnableWindow(..., TRUE);
0
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
12.02.2015, 21:24 [ТС] | 3 |
а почему в стандартном гроуп бокс такого делать ненужно? в чём его особенность?
Добавлено через 1 минуту кстати, непомогло
0
|
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|
12.02.2015, 21:46 | 4 |
что значит "неактивные" ? скриншот бы показал, что ли.. .
Стандартный GroupBox - это просто рамочка с надписью. Он никаких контролов в себе не содержит и ими не владеет. А что ты там намудрил, можно только догадываться. Нужны подробности.
0
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
12.02.2015, 22:26 [ТС] | 5 |
ну например есть кнопка, только она не нажимаетя, а правильнее сказать даже не принимает сообщения
0
|
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|
12.02.2015, 22:55 | 6 |
mh-coder, эту кнопку ты тоже сам отрисовываешь? Так "на пальцах" можно долго объяснять и в конце концов всё равно ничего не понять. Какая иерархия окошек? Кто кому что кому шлёт? Запускай Spy++, смотри. По одному "не нажимается" диагноз поставить трудно.
0
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
||||||
13.02.2015, 10:41 [ТС] | 7 | |||||
rao, лан, выдрал кусок из класса в отдельный проект, вот тут собственно рисованый гроуп бокс, и в нём стандартная кнопка.
PS, указаине окна внутри гроуп бокса как доченим не варант.
0
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
13.02.2015, 11:49 [ТС] | 9 |
нет, она просто их не принимает,
почему если поставить в кнопке дочерним окном - гроуп бокс то работает, а если нет - то нет? как строится эта взаимосвязь?
0
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
13.02.2015, 12:16 [ТС] | 11 |
0
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
13.02.2015, 14:00 [ТС] | 13 |
открыл и закрыл, свич и кейс это шлак в котором визуальео путается код, его можно использовать для небольшого количества строк, но в большом оно теряется.
И чего тут сложного непойму, }else if( msg == одно сообщение }else if( msg == другое Добавлено через 26 минут тут дело не в гроуп бокс, возми например кнопку2 и нарисуй её поверх(на половину ) кнопки1 - в итоге кнопка 2 в том месте где перекрывает кнопку 1 - работать не будет
0
|
13.02.2015, 18:32 | 14 |
На самом деле не нажимается потому что GroupBox становится окном которые выше в Z последовательности, но при этом Button тоже пытается отрисоваться. Хотя Button и отрисовывается на самом деле они не активен и сообщения от мыши ему не приходят и кнопка не имеет фокуса ввода.
Добавлено через 59 секунд То что Button будет Чилдом у GroupBox это вполне самый нормальный вариант.
0
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
13.02.2015, 20:21 [ТС] | 15 |
а можно как-то сделать без child? Мб как-то можно изменить эту z последовательность? тоесть мне нужно создать кнопку до гроуп бокса получается?
0
|
13.02.2015, 20:54 | 16 |
Я не знаю какой грязный метод используется в оригинальном GroupBox но он заставляет рисовать кнопку рисовать все свои состояния на GroupBox это как та связано с тем что при наведении курсора на GroupBox или на то место где кнопка, GroupBox-у посылается сообщение WM_NCHITTEST + HTTRANSPARENT, если же взять обычный компонент то в оконную процедуру посылается только WM_MOUSEMOVE
1
|
32 / 30 / 4
Регистрация: 01.02.2014
Сообщений: 878
|
|
13.02.2015, 21:45 [ТС] | 17 |
demmax2004, спасибо за подсказки и поддержку, я нашол решение, в общем просто в окне гроупбокса отлавливаю сообщение WM_NCHITTEST и ставлю его ниже всей Z-последовательности
SetWindowPos(hWnd,HWND_BOTTOM,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOREDRAW);
0
|
13.02.2015, 21:45 | |
13.02.2015, 21:45 | |
Помогаю со студенческими работами здесь
17
Как сделать CheckBox, объединенный с GroupBox-ом? ComboBox и GroupBox. Как правильно деактивировать GroupBox? Как сделать прозрачным компонент GroupBox в Delphi 7 Как сделать чтобы groupBox,label,radioBatton были прозрачными? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |