dwTypeData
Content of the menu item. The meaning of this member depends on the value of fType and is used only if the MIIM_TYPE flag is set in the fMask member.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Я сейчас посмотрел, как делал это в одном дельфевом проекте. В fMask я указывал MIIM_STRING, остальные поля — 0 (кроме cbSize и dwTypeData). На w2k все прекрасно работает.
И еще одна мысль — может у тебя проект юникодный?
В-общем может попробовать так:
_>>
_>> CMenu* menu = new CMenu();
menu->>>LoadMenu(IDR_TRAY_MENU);
_>> MENUITEMINFO iteminfo = {0}; // Это наверное лишнее, но на всякий случай не помешает...
_>> iteminfo.cbSize = sizeof(MENUITEMINFO);
_>> iteminfo.fMask = MIIM_STRING;
_>> iteminfo.dwTypeData = TEXT("11");
menu->>>SetMenuItemInfo(ID_TRAYMENU_OPTIONS, &iteminfo, FALSE);
_>>
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Здравствуйте, ekamaloff, Вы писали:
E>Здравствуйте, ekamaloff, Вы писали:
E>Я сейчас посмотрел, как делал это в одном дельфевом проекте. В fMask я указывал MIIM_STRING, остальные поля — 0 (кроме cbSize и dwTypeData). На w2k все прекрасно работает.
E>И еще одна мысль — может у тебя проект юникодный?
E>В-общем может попробовать так:
кажется обычный... а гже это глянуть можно?
_>>>
_>>> CMenu* menu = new CMenu();
menu->>>>LoadMenu(IDR_TRAY_MENU);
_>>> MENUITEMINFO iteminfo = {0}; // Это наверное лишнее, но на всякий случай не помешает...
_>>> iteminfo.cbSize = sizeof(MENUITEMINFO);
_>>> iteminfo.fMask = MIIM_STRING;
_>>> iteminfo.dwTypeData = TEXT("11");
menu->>>>SetMenuItemInfo(ID_TRAYMENU_OPTIONS, &iteminfo, FALSE);
_>>>
Здравствуйте, VladFein, Вы писали:
VF>А где этот код находится? И что Вы потом делаете с menu?
находится в обработчике WM_USER+1
ничего не делаю. это весь код
Здравствуйте, Кирпа В.А., Вы писали:
КВА>коль мы в форуме MFC то имхо самый удобное место для изменения текста пункта меню КВА>это обработчик ON_UPDATE_COMMAND_UI
КВА>Всего то и делов вызвать один метод CCmdUI::SetText()
у меня уже истерика начинается...
в BEGIN_MESSAGE_MAP добавил ON_UPDATE_COMMAND_UI(ID_TRAYMENU_OPTIONS, OnUpdateTraymenuOptions)
в OnUpdateTraymenuOptions пишу pCmdUI->SetText("123"); и ничего...
Здравствуйте, _hunter, Вы писали:
_>Здравствуйте, Кирпа В.А., Вы писали:
КВА>>коль мы в форуме MFC то имхо самый удобное место для изменения текста пункта меню КВА>>это обработчик ON_UPDATE_COMMAND_UI
КВА>>Всего то и делов вызвать один метод CCmdUI::SetText()
_>у меня уже истерика начинается... _>в BEGIN_MESSAGE_MAP добавил ON_UPDATE_COMMAND_UI(ID_TRAYMENU_OPTIONS, OnUpdateTraymenuOptions) _>в OnUpdateTraymenuOptions пишу pCmdUI->SetText("123"); и ничего...
Здравствуйте, _hunter, Вы писали:
VF>>А где этот код находится? И что Вы потом делаете с menu? _>находится в обработчике WM_USER+1 _>ничего не делаю. это весь код
В этом Ваша проблема: Вы загружаете меню с помощью LoadMenu, изменяете его и выбрасываете. Вы же не расчитываете что эти изменения будут сохранены в ресурсах?
Изменять нужно уже загруженное меню, перед тем как оно будет показано. Если это контекстное мену — то перед TrackPopupMenu.
Кстати, как Вы показываете это меню?
Здравствуйте, _hunter, Вы писали:
_>у меня уже истерика начинается...
А вот этого не надо... _>в BEGIN_MESSAGE_MAP добавил ON_UPDATE_COMMAND_UI(ID_TRAYMENU_OPTIONS, OnUpdateTraymenuOptions) _>в OnUpdateTraymenuOptions пишу pCmdUI->SetText("123"); и ничего...
Попробую угадать — Вы пишите диалоговое приложение?