|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 8, 2003 11:07:28 Всем привет! Понадобилось мне сделать попап с эдитом. Я правильно понимаю что это только через ownerdraw? |
|
|
Дата: Дек 8, 2003 11:23:42 Valery А как именно должно работать. Если ты имеешь ввиду когда, вводишь определённую комбинацию символов, появляеться всплывающее меню, и там выбераешь пункт меню. То тут вроде ownerdraw не нужен. |
|
|
Дата: Дек 8, 2003 11:29:18 Нет, эдит должен быть в меню |
|
|
Дата: Дек 8, 2003 12:58:15 Valery Насколько я знаю, тут ownerdraw, не поможет. С помощью ownerdraw ты можешь лишь изменить прорисовку меню, и то не полностью. Вроде тут единственный выход создавать своё меню, т.е. как в примере xpmenu, с "иностранного сайта" по ассемблеру, ссылку не помню, но она где то есть в форуме. Там меню создаёться полностью, с нюля, т.е. оно не имеет ничего общего с обычным меню. Задача это очень непростая. А если можно с обычным меню такое сделать, то мне тоже интерсно как это сделать. |
|
|
Дата: Дек 8, 2003 13:14:33 Насколько я знаю, тут ownerdraw, не поможет можно попробовать вставить edit control, hwnd меню получить можно, а с окном можно что угодно уже делать, ес-но обрабатывать все сообщения и возиться с хуками тебе самому придется. Можно и самому все меню рисовать - это уже точно как в XP будет :) Другой вопрос - нужно ли это (и стоит ли таких затрат). Я такое только в MS Access видел, но нужно оно так или нет - вопрос спорный |
|
|
Дата: Дек 8, 2003 13:38:23 Спасибо. Мне предложили недавно сляпать "как в аксес". Натравил spyx - признаков ownerdraw не нашел. Повешу хуки, боюсь только все равно естественно выглядеть не будет. |
|
|
Дата: Дек 8, 2003 17:49:38 После экспериментов с ownerdraw систему так переглючило что и не до окошечек уже:) |
|
|
Дата: Дек 9, 2003 20:26:10 Valery Понадобилось мне сделать попап с эдитом Я когда-то хотел такое сделать, но опыта было маловато. Потом просто забыл. Тебе надо определить HWND окна меню, после того, как оно создастся, и поставить на него хук. После этого с помощью сабклассинга уже можно делать, что хочешь. А использовать или не использовать OWNERDRAW - тебе решать (если нужны нестандартные пункты, то ответ - да). |
|
|
Дата: Дек 9, 2003 21:26:37 · Поправил: Valery Toxic Я с gdi-ями никогда по серьезному не работал. Ownerdraw item'ы я отрисовывал уже когда-то, но хрен что это мне дало. Совсем не въеду как правильно вляпать edit на меню. Пробовал MoveWindow получив рект из DRAWITEMSTRUCT.rcItem при обработке или через GetMenuItemRect - все какая то фигня выходит. Каким бы ни был эдит дочерним или сам по себе не слушается ни в какую. Тут доперло до меня что без сабклассинга не обойтись но никакой инфы найти про МЕНЮ как КЛАСС. Как можно ставить хуки не зная что с сообщениями делать? Если кто может ссылочку дать буду очень признателен. |
|
|
Дата: Дек 9, 2003 21:45:16 Valery Класс менюшных окон называется "#32768". Отловить окно можно, например, при первой прорисовке элементов (если стоит OWNERDRAW), а потом сабклассить. |
|
|
Дата: Дек 9, 2003 22:38:57 Toxic Спасибо! |
|
|
Дата: Дек 11, 2003 01:21:04 Toxic Класс менюшных окон называется "#32768". Отловить окно можно, например, при первой прорисовке элементов (если стоит OWNERDRAW), а потом сабклассить Не все так просто. Читаем описание поля hwndItem из DRAWITEMSTRUCT: Handle to the control for combo boxes, list boxes, buttons, and static controls. For menus, this member is a handle to the menu containing the item. Перерыв MSDN я так и не нашел способа превратить HMENU в HWND 8( |
|
|
Дата: Дек 11, 2003 10:42:45 Black_mirror hwnd меню ловится элементарно CBT хуком (так более правильно), и зачем тебе нужно превращать hmenu в hwnd? |
|
|
Дата: Дек 11, 2003 12:21:16 masquer А можно сабклассить по хэндлу меню? |
|
|
Дата: Дек 11, 2003 12:34:09 Самого меню, или его окна? :) Это ж две большие разницы :) Имеешь хендл окна - делаешь с ним все что хочешь. |