|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 6, 2003 22:07:57 · Поправил: prog Ктонибудь может подсказать как в меню, которое открывается по правой кнопке мыши в трее (popup), вдоль левой кромки вставить картинку, как в меню аськи? |
|
|
Дата: Ноя 6, 2003 23:20:45 Исходников у меня сейчас нет, а подробно описывать - это слишком долго. Если в общих фразах, то так: Меню должно быть OWNERDRAW, то есть прорисовку пунктов меню должна осуществлять не система, а твоя WndProc. Когда сделаешь это, то можно с меню делать что угодно, в том числе и сдвинуть пункты вправо, наложить битмап, сделать его полупрозрачным и т. д. Но многие производители софта давно уже отказались от стандартного меню, а вместо этого используют "сахарозаменители" - систему окон, которая ведет себя как стандарное меню + имеет много дополнительных возможностей |
|
|
Дата: Ноя 7, 2003 01:32:45 Можно SetMenuItemBitmap но это примерно где-то 14x14 ownerdraw лучше ищи исходники JohnFound'a na board.win32asmcommunity.net |
|
|
Дата: Ноя 7, 2003 05:06:26 comrade Да нет, это совсем не то. Нужно в OWNERDRAW вывести вертикальную полоску на всю высоту окна (как в меню "Пуск"). Можно просто сдвинуть все пункты вправо, чтобы они не затирали полоску при выделении. А можно сделать отдельный задизабленный пункт, отделив его вертикальным разделителем, чтобы при проведении мышью над ним не выделялись другие пункты. |
|
|
Дата: Ноя 7, 2003 05:24:18 prog У меня есть ActiveX, который позволяет создавать меню(настоящие, а не эмуляцию!) круче, чем в Office XP. Например такое: полупрозрачность окна, градиентная заливка(до 255 переходов), картинка сбоку, картинка на фоне, выделение картинкой, полупрозрачное выделение, любой размер и тип шрифта, мягкая(плавная) тень. Писал я его на VB6, так что для использования нужно, чтобы в системе был файл msvbvm60.dll Если интересно, можешь посмотреть на [url=]http://www.vbrussian.com[/url]. Называется MenuX. |
|
|
Дата: Ноя 7, 2003 11:29:57 У меня вопрос по меню. Я использую стиль OWNERDRAW, для itemov. Но я немогу сделать меню плоским. |
|
|
Дата: Ноя 7, 2003 12:00:27 · Поправил: prog Спасибо, Toxic, но с dll мне, к сожалению, не годится.. Буду пробовать.. Спасибо! |
|
|
Дата: Ноя 7, 2003 12:58:01 Chib777 Правильно, не сделаешь. OWNERDRAW нужен для прорисовки элементов: система запрашивает у тебя размеры элементов, потом на основе этих данны создает окно, и при каждой прорисовке просит тебя нарисовать элемент самому. Но ведь это только элементы, а не само окно. Можешь сделать перехват, когда создается окно и сабклассить его, используя свою оконную процедуру при событии WM_NCPAINT. |
|
|
Дата: Ноя 7, 2003 14:40:02 Toxic Кто нибудь знает у меню есть свой класс окна, я имею ввиду класс как - BUTTON. |
|
|
Дата: Ноя 7, 2003 14:49:24 Есть - "#32768" |
|
|
Дата: Ноя 7, 2003 14:53:34 Кто нибудь знает в MASM, можно подключать библиотеки классов на С++ (там компилятор изменил имена функций). |
|
|
Дата: Ноя 7, 2003 18:20:25 · Поправил: prog А может можно как-то задать у итема меню(не OWNERDRAW) свойства, чтобы при наведении мышки он не подсвечивался? Т.е. MF_DISABLED делает что клик не срабатывает, но пункт все равно подсвечивается. Как отключить подсветку?? |
|
|
Дата: Ноя 7, 2003 18:36:43 prog Нет, это дефолтное поведение меню, все остальное - только ручками рисовать надо. |
|
|
Дата: Ноя 7, 2003 18:56:28 · Поправил: prog понятно.. а както ловить событие mouseover над этим пунктом меню и тутже ставить ему MF_UNHILITE ? это извращение? |
|
|
Дата: Ноя 7, 2003 19:02:54 это извращение? Ну, можно поставить хук и ловить мышку, но зачем мазохизмом заниматься? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.041 |