Member 708172 Ответов: 2

Visual Studio 2008 Как найти обработчик событий


Всем привет,

Я мигрирую VC6 -> VS2008 с помощью MFC.
Я потратил несколько часов, чтобы найти, как перейти из редактора меню (в представлении ресурсов) непосредственно к функции события для определенного элемента подменю.

Работая над VC6, я сделал это следующим образом (основанный на диалоге, MCF):
1. Откройте Редактор Меню
2. Выберите любой пункт меню с помощью левой кнопки мыши
3. Ctrl+W (мастер вызова)
4. В появившемся диалоговом окне выберите команду правого поля
5. Нажмите кнопку изменить код

Это все, что мне нужно, чтобы "перейти" к целевой части кода.

VS2008 (основанный на диалоге, MFC):
1. Откройте Редактор Меню
2. Выберите любой пункт меню с помощью правой кнопки мыши
3. контекстное меню > добавить обработчик событий
4. в появившемся диалоговом окне: кнопки "Добавить и отредактировать" и "отменить".
Добавление и редактирование активны, если обработчик не создан. Если обработчик уже есть
в настоящее время активна только функция "отмена".

Из msdn:
Если выбранный тип сообщения уже имеет обработчик событий для выбранного класса, добавление и редактирование недоступны, а код редактирования доступен. Щелчок Редактирование Кода чтобы открыть текстовый редактор в существующей функции.

В диалоговом окне нет кнопок редактирования кода. Гугл ничего не получил, похоже, что ни у кого не было проблем с поиском сообщений меню.

Как я могу найти целевую функцию?
Пожалуйста, не предлагайте найти>Все файлы>текст :)

2 Ответов

Рейтинг:
2

Albert Holguin

Цитата:
Пожалуйста, не предлагайте найти>Все файлы>текст

А почему бы и нет? ..это даст вам обработчик событий, который вам нужен. Что касается того, почему он сломан в Visual Studio... это, вероятно, потому, что обработчик не имеет соответствующего прототипа. Visual Studio 6 никогда не проверяла прототипы, чтобы убедиться, что они соответствуют тому, что должно было быть там.... Visual Studio 2008 ожидает, что прототипы будут соответствовать тому, что вы делаете.


Рейтинг:
0

Member 708172

Привет,

предположим, у меня есть меню:
MyMenu
---subitem1

Предположим, что где-то в глубине файлов и текстов у нас есть:
void CSomeDlg::OnMenuMyMenusubitem1()
{
...
}

Есть ли способ найти этот "OnMenuMyMenusubitem1()" в один-два клика?
Древний VC6, похоже, обладает большей функциональностью, чем современные игрушки...