Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение текста меню 
V
    Опции темы
Kirgston
Дата 9.4.2011, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Доброго времени суток! Пытаюсь сменить текст меню:

Код

            MENUITEMINFOA mii = {};
            mii.cbSize = sizeof mii;
            mii.dwTypeData = "123";
            mii.fMask = MIIM_TYPE;
            mii.fType = MFT_STRING;
            SetMenuItemInfoA(hMenu, ID_40001, false, &mii);


Но ничего не происходит. Меню рисовал через Dialog API
PM MAIL   Вверх
Dem_max
Дата 9.4.2011, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



когда рисуешь свое меню, текст рисуешь через DrawText


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
Kirgston
Дата 9.4.2011, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



А если мне понадобится изменить названия меню уже во время работы программы?

А вообще я просто использовал редактор ресурсов + LoadMenu & SetMenu
PM MAIL   Вверх
Dem_max
Дата 10.4.2011, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 16
Всего: 39



если стандартными средствами API то 
RemoveMenu() + InsertMenuItem()

А если сам рисуешь, то сам и все перерисовываешь

Это сообщение отредактировал(а) Dem_max - 10.4.2011, 04:41


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
GremlinProg
Дата 10.4.2011, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



1. а не поможет, если cch выставить в 3?
2. а иногда и DrawMenuBar помогает


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Kirgston
Дата 13.4.2011, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Пардон за столь долгий ответ


Dem_max, да, но я же говорю что я делал не в ручную а через редактор ресурсов. Если создать форму с ресурсов то там и по другому обращаться надо... может тут так же?


GremlinProg, 


1. неа :(

2. Тоже нет. Ведь оно уже прорисовано.

Блин. Вот вожусь и ничего не помогает ... :((
PM MAIL   Вверх
GremlinProg
Дата 13.4.2011, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(Kirgston @  13.4.2011,  10:18 Найти цитируемый пост)
2. Тоже нет. Ведь оно уже прорисовано.

ну так какой ответ-то?
- "нет"
или
- "не проверял"
?

просто название метода DrawMenuBar не очень отражает его суть,
а суть в том, что он скорее обновляет некую внутреннюю структуру меню чем его рисует, да и по документации, положено:
Цитата(DrawMenuBar Function @ MSDN)

If the menu bar changes after the system has created the window, this function must be called to draw the changed menu bar.



--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
Kirgston
Дата 13.4.2011, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Ответ : "нет" =) ибо проверил прежде чем писать   smile 

Есть вариант "написать ручками всё с 0" . Правда хочу с этим "непониманием" разобраться. Да и коду оно сократит в разы. 

Это сообщение отредактировал(а) Kirgston - 13.4.2011, 17:18
PM MAIL   Вверх
jimbo
Дата 13.4.2011, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 180
Регистрация: 18.6.2009
Где: Южно-Сахалинск

Репутация: нет
Всего: нет



Код

ModifyMenu(hmenu,ID_MENU_EDIT,MF_STRING,ID_MENU_EDIT,"Редактировать");


может так?
--------------------
Я не играю в шахматы - в шахматах я борюсь. А.А.Алехин
PM MAIL WWW   Вверх
Kirgston
Дата 18.4.2011, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 792
Регистрация: 24.12.2007

Репутация: нет
Всего: 2



Цитата(jimbo @  13.4.2011,  18:43 Найти цитируемый пост)
может так? 

Странно но помогло
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0502 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.