#visual-studio-2010 #visual-studio #mfc
#visual-studio-2010 #visual-studio #mfc
Вопрос:
Используя Visual Studio 2010 и создавая стандартный проект MFC с пользовательскими стилями, все пункты главного меню выровнены по левому краю:
-------------------------------------------
| File Edit Help |
-------------------------------------------
| |
Что мне нужно сделать, если я хочу, чтобы пункт меню «Справка» находился с правой стороны:
-------------------------------------------
| File Edit Help |
-------------------------------------------
| |
Я пробовал разные варианты в редакторе ресурсов / свойствах для пункта меню, но не нашел ничего, что помогло бы мне получить желаемый эффект.
Моя текущая визуальная тема — Office 2007 — black, если это уместно, но я не вижу, чтобы это имело какой-либо эффект.
Комментарии:
1. Вы устали создавать меню динамически, вставляя каждый элемент по отдельности? Вам нужно будет вставить «пустые» элементы, чтобы выровнять элемент справки по правому краю. Не пробовал, но, похоже, это должно сработать.
2.
pMenu->ModifyMenu(nPos, MF_BYPOSITION | MFT_RIGHTJUSTIFY, 0, szName);
Ответ №1:
Когда вы говорите о новом CMFCMenuBar, эта функция больше не доступна.
Также этот стиль больше не используется в продуктах Microsoft в течение многих лет. Даже в Windows XP меню справки больше не было настроено правильно.
Внутренне я все еще вижу свойство с именем CMFCToolBarMenuButton::m_bShowAtRightSide, но я не вижу никакого местоположения, где его можно было бы установить.
Внутренне я проверил код, который создает CMFCMenuBar из ресурса меню (CreateFromMenu). Также нет кода, который проверяет наличие MFT_RIGHTJUSTIFY.