Не удается добавить обработчик событий в visual studio 2010 (проект mfc) - PullRequest
4 голосов
/ 14 сентября 2010

Недавно я преобразовал проект Visual Studio 6.0 в MFC в проект Visual Studio 2010, и у меня возникают проблемы, когда я пытаюсь добавить обработчики событий для элементов управления в определенных формах в моем проекте.На одной конкретной странице у меня есть переключатель, и я попытался добавить к нему обработчик события щелчка, используя 3 различных способа:

1) Щелкнув правой кнопкой мыши переключатель и нажав «Добавить обработчик события».Этот метод не приводит к сообщениям об ошибках, но он не создает обработчик событий.Он просто закрывает мастер обработки событий без каких-либо сообщений.

2) Щелкнув правой кнопкой мыши переключатель и выбрав свойства.В окне свойств я нажимаю на окно событий (кнопка молнии).Затем я перехожу к событию click и нажимаю add handler.Этот метод создает окно сообщения об ошибке, которое говорит «Значение свойства недопустимо» , а подробности этого сообщения об ошибке в поле ниже говорят: «Катастрофический сбой» .

3) Добавив обработчик событий через мастер классов.Это приводит к тем же результатам, что и в пункте 1 выше.

Примечания о моем проекте:

1) Запуск Windows XP SP3

2) Не во всех формах возникает эта проблема,В некоторых формах я могу добавить обработчики событий.

3) Всякий раз, когда я получаю сообщение об ошибке «Значение свойства недопустимо», это также нарушает функциональность отмены / восстановления

4) Проект содержит FarPoint ActiveXуправления

Ответы [ 3 ]

1 голос
/ 10 марта 2011

Убедитесь, что класс MFC был добавлен для проблемных форм. У меня был мастер добавления VS2010 «Добавить переменную ...» для элементов управления, где родительская форма еще не имела ассоциированного класса, поэтому то же самое может быть верно для обработчиков событий.

0 голосов
/ 09 ноября 2017

Это потому, что intellisense или его база данных отключена. Я столкнулся с этим недавно. Проверьте эти параметры, должно быть:

Меню инструментов IDE -> Параметры -> Текстовый редактор -> C / C ++ -> Дополнительно -> Отключить базу данных = False

Меню инструментов IDE -> Параметры -> Текстовый редактор -> C / C ++ -> Дополнительно -> Отключить Intellisence = False

Меню инструментов IDE -> Параметры -> Текстовый редактор -> C / C ++ -> Дополнительно -> Интервал повторного сканирования = 0

Откройте пустую VS IDE, исправьте параметры и снова откройте проект, все должно быть в порядке.

0 голосов
/ 11 января 2013

У меня была и остается та же проблема в проекте.Я переименовал все в новое имя.Не уверен, что это вызвало проблему, но я не смог ее исправить.Добавить обработчик событий мне не удается, несмотря на наличие нужного класса.В итоге я скопировал необходимый код обработки событий, который требует 3 элемента:

1) Функция для обработки сообщения, объявленного открытым в классе

afx_msg void OnBnClickedSaveTButton();

2)Реализация этой функции:

void CExampleDlg::OnBnClickedSaveTButton()
{
}

3) Подключение сообщения обработчика события в карте сообщений после

BEGIN_MESSAGE_MAP(CExampleDlg, CDialogEx)
// Other mappings here

ON_BN_CLICKED(IDC_SAVE_TO_DISK_RADIO, &CExampleDlg::OnBnClickedSaveTButton)

END_MESSAGE_MAP()

. Вы можете получить имя IDC из диалогового редактора.Все это работает как чудо, хотя это занимает немного больше времени, чем мастер добавления события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...