Получить ID для пункта меню ресурсов всплывающего окна в C ++ MFC VS2015C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Получить ID для пункта меню ресурсов всплывающего окна в C ++ MFC VS2015

Сообщение Anonymous »

Я нахожусь в процессе локализации приложения MFC. Мой подход заключался в создании только ресурса DLL, который содержит переведенную копию графического интерфейса. Моя проблема заключается в том, что в исходном коде есть места, где были обнаружены всплывающие ресурсы по их названию строки. Так как я перевел эти строки на другой язык, эти функции больше не работают. Моим предполагаемым решением этого было найти эти элементы по ID, однако, когда я попробовал это, я узнал, что у них, кажется, нет уникального идентификатора. < /p>

См. Ниже фрагмент файла .rc, с которым я работаю, и отметьте, что всплывающий ресурс и действие не имеют идентификатора: < /p>

Код: Выделить всё

IDR_MAINFRAME MENU
BEGIN
POPUP "&Action"
BEGIN
MENUITEM "&Tracking Start\tF2",         ID_TRACKING_START
MENUITEM "Record...\tCtrl+R",           ID_RECORDING_STREAMTOFILE
MENUITEM "Mouse Control Start\tF9",     ID_ACTION_MOUSECONTROL
MENUITEM "Reflex Reduction\tF12",       ID_REFLEXREDUCTION_TOGGLE
POPUP "Text &Log"
BEGIN
MENUITEM "Select Log&file...",          ID_LOGGING_FILE
MENUITEM "Start &Logging\tF6",          ID_LOGGING_LOG
END
MENUITEM SEPARATOR
MENUITEM "E&xit\tAlt+F4",               ID_APP_EXIT
END
END
< /code>

и фрагмент ниже для кода, который находит элемент пользовательского интерфейса по имени строки < /p>

int CMainFrame::FindMenuItem(CMenu* Menu, LPCTSTR MenuString)
{
ASSERT(Menu);
ASSERT(::IsMenu(Menu->GetSafeHmenu()));

int count = Menu->GetMenuItemCount();
for (int i = 0; i < count; i++)
{
CString str;
if (Menu->GetMenuString(i, str, MF_BYPOSITION) && (strcmp(str,
MenuString) == 0))
{
return i;
}
}
return -1;
}
После некоторого Googling я нашел что-то под названием Menuex https://learn.microsoft.com/en-us/windo ... x-resource. Похоже, что вы можете добавить идентификатор к всплывающим ресурсам. Опять же, когда я попытался изменить файл .rc, чтобы использовать Menuex вместо меню, мой компилятор VS2015 вообще не одобрил, и теперь я как бы застрял. < /P>

>

Подробнее здесь: https://stackoverflow.com/questions/519 ... mfc-vs2015
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»