Пропадает шорткат из меню
От: sushko Россия  
Дата: 13.04.16 08:01
Оценка:
MSVC2010, MFC Doc/View приложение. Добавляю в меню пункт с названием "Run...\tCtrl+F5", в дизайн-тайме он показывается нормально, в ран-тайме он показывается просто как Run... , т.е. без шортката Ctrl+F5. Почему? Что я делаю неправильно?

Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re: Пропадает шорткат из меню
От: sushko Россия  
Дата: 13.04.16 08:23
Оценка:
Кстати, сейчас в caption этого пункта меню вместо "Run...\tCtrl+F5" добавил единичку: "Run1...\tCtrl+F5" — единичка в design time появилась, в run time по-преджнему отсутствует. Полная перекомпиляция проекта (в т.ч. с ручным удалением всех OBJ и т.п.) не помогает.
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re: Пропадает шорткат из меню
От: AlexGin Беларусь  
Дата: 14.04.16 11:59
Оценка:
Здравствуйте, sushko, Вы писали:

S>MSVC2010, MFC Doc/View приложение. Добавляю в меню пункт с названием "Run...\tCtrl+F5", в дизайн-тайме он показывается нормально, в ран-тайме он показывается просто как Run... , т.е. без шортката Ctrl+F5. Почему? Что я делаю неправильно?


S>Image: screenshot.png

1) Акселератор (short-cut) — обязательно должен быть в таблице Accelerators.
Проверьте, убедитесь, что это так и пересоберите приложение.
Пример — из файла *.rc:
IDR_MAINFRAME ACCELERATORS 
BEGIN
    "C",            ID_EDIT_COPY,           VIRTKEY, CONTROL, NOINVERT
    VK_INSERT,      ID_EDIT_COPY,           VIRTKEY, CONTROL, NOINVERT
    VK_DELETE,      ID_EDIT_CUT,            VIRTKEY, SHIFT, NOINVERT
    "X",            ID_EDIT_CUT,            VIRTKEY, CONTROL, NOINVERT
    "V",            ID_EDIT_PASTE,          VIRTKEY, CONTROL, NOINVERT
    VK_INSERT,      ID_EDIT_PASTE,          VIRTKEY, SHIFT, NOINVERT
    VK_BACK,        ID_EDIT_UNDO,           VIRTKEY, ALT, NOINVERT
    "Z",            ID_EDIT_UNDO,           VIRTKEY, CONTROL, NOINVERT
    "N",            ID_FILE_NEW,            VIRTKEY, CONTROL, NOINVERT
    "O",            ID_FILE_OPEN,           VIRTKEY, CONTROL, NOINVERT
    "S",            ID_FILE_SAVE,           VIRTKEY, CONTROL, NOINVERT
    VK_F6,          ID_NEXT_PANE,           VIRTKEY, NOINVERT
    VK_F6,          ID_PREV_PANE,           VIRTKEY, SHIFT, NOINVERT
    "F",            ID_BTN_FIND,            VIRTKEY, CONTROL, NOINVERT
END

Выделен акселератор для поиска — по "Ctrl+F"

2) Очистьте РЕЕСТР Windows (через вызов regedit) — прсто удалите ветку Workspace:
Пример: HKCU\Software\CompanyName\ProductName\Workspace
После запуска, MFC-приложение повторно сгенерирует данную ветку.
Отредактировано 14.04.2016 12:01 AlexGin . Предыдущая версия .
Re[2]: Пропадает шорткат из меню
От: sushko Россия  
Дата: 14.04.16 15:29
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>1) Акселератор (short-cut) — обязательно должен быть в таблице Accelerators.


Я говорю не про акселераторы, а просто про надпись "Ctrl+F5" в правой части пункта меню. В исходниках (.RC) он есть, в откомпилированных файлах (.RES, .EXE) — отсутствует, в т.ч. и после полной пересборки приложения. Почему?

AG>2) Очистьте РЕЕСТР Windows (через вызов regedit) — прсто удалите ветку Workspace:

AG>Пример: HKCU\Software\CompanyName\ProductName\Workspace

Такой ветки у меня есть, есть только
HKEY_CURRENT_USER\Software\Локальные приложения, созданные с помощью мастера приложений\Product_name
Удалил ее, пересобрал EXE — не помогло.
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
Re[3]: Пропадает шорткат из меню
От: AlexGin Беларусь  
Дата: 15.04.16 18:06
Оценка:
Здравствуйте, sushko, Вы писали:

S>Здравствуйте, AlexGin, Вы писали:


AG>>1) Акселератор (short-cut) — обязательно должен быть в таблице Accelerators.


S>Я говорю не про акселераторы, а просто про надпись "Ctrl+F5" в правой части пункта меню. В исходниках (.RC) он есть, в откомпилированных файлах (.RES, .EXE) — отсутствует, в т.ч. и после полной пересборки приложения. Почему?

Еще раз напоминаю — проверьте таблицу акселераторов. Надпись — завязана на эту сущность.

AG>>2) Очистьте РЕЕСТР Windows (через вызов regedit) — прсто удалите ветку Workspace:

AG>>Пример: HKCU\Software\CompanyName\ProductName\Workspace

S>Такой ветки у меня есть, есть только

S>HKEY_CURRENT_USER\Software\Локальные приложения, созданные с помощью мастера приложений\Product_name
S>Удалил ее, пересобрал EXE — не помогло.
Тут возможно два варианта:
1) Конфигурация этого проекта — где-то в другой ветке.
Смотрим: ...App::InitInstance()
в ней — вызов SetRegistryKey(...)
2) Имеются проблемы в *.rc файле.

P.S. В таких случаях — имеет смысл создать в студии маленький тестовый MFC-application проект, в котором попытаться имитировать данную ситуацию.
Этот подход в большинстве случаев помогает.
Re[3]: Пропадает шорткат из меню
От: Nikolaz Германия www.nikeware.com
Дата: 15.04.16 21:48
Оценка:
Здравствуйте, sushko, Вы писали:


S>Такой ветки у меня есть, есть только

S>HKEY_CURRENT_USER\Software\Локальные приложения, созданные с помощью мастера приложений\Product_name
S>Удалил ее, пересобрал EXE — не помогло.
Ищите нечто похожее на MFCToolBar-593980 (цифры могут быть другие).
Re[4]: Пропадает шорткат из меню
От: Nikolaz Германия www.nikeware.com
Дата: 18.04.16 13:59
Оценка:
Здравствуйте, Nikolaz, Вы писали:

S>>Удалил ее, пересобрал EXE — не помогло.

N>Ищите нечто похожее на MFCToolBar-593980 (цифры могут быть другие).
Более кашерный путь:
CWinAppEx::CleanState
Re: Пропадает шорткат из меню
От: VladFein США  
Дата: 19.04.16 21:45
Оценка:
Здравствуйте, sushko, Вы писали:

S>MSVC2010, MFC Doc/View приложение. Добавляю в меню пункт с названием "Run...\tCtrl+F5", в дизайн-тайме он показывается нормально, в ран-тайме он показывается просто как Run... , т.е. без шортката Ctrl+F5. Почему? Что я делаю неправильно?



На картинке, в редакторе ресурсов, виден "английский (США)"; а другие языки есть?
А в ран-тайме какой язык?
Re: Пропадает шорткат из меню
От: sushko Россия  
Дата: 24.04.16 13:32
Оценка:
Здравствуйте, sushko, Вы писали:

Проблема решена, все были правы: дело в регистри. Спасибо!
Бесплатный генератор отчетов для программ на C/C++
http://www.oxetta.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.