· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Как менять visible у пункта меню?

Посл.отвђт Сообщенiе


Дата: Авг 26, 2003 23:21:11

Как менять visible у пункта меню (не удаляя). SetMenuItemInfo() не помогает :(


Дата: Авг 26, 2003 23:23:06

Pasha 111

EnableMenuItem болжно тебя выручить...


Дата: Авг 27, 2003 12:02:46

KiNDeR
EnableMenuItem болжно тебя выручить...

EnableMenuItem() только устанавливает enable/disable. У этой функции возможностей еще меньше, чем у SetMenuItemInfo().

help!


Дата: Авг 28, 2003 05:11:50

Аааа, так это как в ворде (наименее используемые подитемы сворачиваются)... Тады вам придётся самому это дело выяснить и придти нам рассказать :))) Мне тоже интересно.


Дата: Авг 28, 2003 16:27:15 · Поправил: Pasha 111

Quantum
Аааа, так это как в ворде (наименее используемые подитемы сворачиваются)... Тады вам придётся самому это дело выяснить и придти нам рассказать :))) Мне тоже интересно.

Да нет же. Это просто как ShowWindow(hWnd, SW_HIDE), но тока для пункта меню (у пункта меню ведь нет HWND!!!!!). А как в ворде мне совсем не нуно :)


Дата: Авг 28, 2003 19:55:38

Pasha 111
Это просто как ShowWindow(hWnd, SW_HIDE), но тока для пункта меню (у пункта меню ведь нет HWND!!!!!).
:))))))) Сами на свой вопрос ответили. Подитемы-то не окна!

Кстати, почему вариант с DeleteMenu не рулит?


Дата: Авг 28, 2003 22:16:03

Quantum
Сами на свой вопрос ответили. Подитемы-то не окна!
А я говорил, что subitems - окна? :-|

Кстати, почему вариант с DeleteMenu не рулит?
Потому, что я работаю с субитемами по порядковому номеру. Если удалить один субитем, то.... плохо будет :) Если всё же удалять, то напрашиваются другие вопросы: как создавать меню вручную (не из ресурсов), чтобы можно было потом опять субитем добавить, как привязывать к субитему команду (WM_COMMAND чтоб приходил), как работать с элементами меню не по номеру, а по тому, какой комманд они посылают при выборе. Вот так :)


Дата: Авг 29, 2003 16:16:59 · Поправил: DaemoniacaL

Это не оно?
BOOL ShowHideMenuCtl(
    HWND hWnd, 
    UINT_PTR uFlags, 
    LPINT lpInfo
   );

а также AppendMenu, InsertMenuItem


Дата: Авг 29, 2003 17:54:29

В обработчике WM_INITMENU делаешь CreateMenu, и ручками через InsertMenuItem вставляешь каждый пункт. Или это в чужом меню такое нужно сделать?


Дата: Авг 29, 2003 21:34:27

DaemoniacaL
Это не оно?
BOOL ShowHideMenuCtl(
HWND hWnd,
UINT_PTR uFlags,
LPINT lpInfo
);


Смотрел в MSDN - лежит в commctrl.h Нафига функции для работы с меню юзать comctl32.dll??? Тем более там ей ещё какой-то массив передавать надо.

а также AppendMenu, InsertMenuItem
Это-то я знаю.

masquer
В обработчике WM_INITMENU делаешь CreateMenu, и ручками через InsertMenuItem вставляешь каждый пункт.
Я умею вручную делать меню, просто ето сплошной гемор, ДОЛЖЕН ЖЕ БЫТЬ СПОСОБ ПРОСТО ПОМЕНЯТЬ VISIBLE У МЕНЮ!!!
На VB можно написать MyMenuElement.Visible = False и все. При этом можно вызвать MyMenuElement_Click().

Пересмотрел MSDN - ничего...


Дата: Авг 29, 2003 21:45:42

а не пробывали
hMenu:=GetMenu(hWnd)
hSubMenu:=GetSubMenu(hMenu,pos)
ShowWindows()?


Дата: Авг 30, 2003 01:30:54

Возможно ShowHideMenuCtl - это прикол скручивания/разворачивания меню как в офисе например


Дата: Авг 30, 2003 15:35:51 · Поправил: Pasha 111

KiNDeR
а не пробывали
hMenu:=GetMenu(hWnd)
hSubMenu:=GetSubMenu(hMenu,pos)
ShowWindows()?

Конечно пробовал! Но ту в чём фишка-то, ты ведь сам написал hMenu :) Это не hWnd :) А что дальше: ну определил я hMenu, ну hSubMenu... а до итемов-то как добраться?

БЛИН! Чего? Никто не знает как это делать? Я уже весь инет обрыл - нигде примера нету :((

DaemoniacaL
Возможно ShowHideMenuCtl - это прикол скручивания/разворачивания меню как в офисе например
Может быть.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.075