2010-09-14 3 views
4

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

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

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

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

Заметки о моем проекте:

1) работающий под управлением Windows XP SP3

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

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

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

+0

Предлагаю скопировать код для одного диалогового окна, в котором есть проблема, в новый проект в том же решении. Произошла ли такая же ошибка? –

+0

Я скопировал файл ресурсов и файлы .h и .cpp для формы, которая давала мне проблемы в новый проект в том же решении, и я получаю те же ошибки, что и описанные выше. Интересно, однако, что если я только копирую файл ресурсов для диалога и создаю для него новый файл .cpp и .h, я могу добавить обработчики событий в порядке. –

+0

В конце концов я просто отказался от обновления этого проекта Visual Studio 6.0 до 2010 года из-за нескольких различных проблем. Это было очень близко к работе, но у меня просто не хватило времени, чтобы разобраться в моих проблемах. Я прибегал к тому, чтобы на моей машине была установлена ​​визуальная студия 6.0: * (. Я снова опубликую, если я когда-нибудь это выясню. –

ответ

1

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

+0

Они были созданы. –

0

У меня была и остается такая же проблема в проекте. Я переименовал все в новое имя. Не уверен, что это вызвало проблему, но я не смог ее исправить. Добавление обработчика событий терпит неудачу для меня, несмотря на правильный класс. То, что я в конечном итоге делаю было копировать код обработки события, которое было необходимо, что требует 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 из диалогового редактора. Все это работает как шарм, хотя для этого требуется немного больше времени, чем мастер обработчика добавления событий.

0

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

IDE меню Сервис -> Параметры -> Текстовый редактор -> C/C++ -> Advanced -> Отключить Database = False

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

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

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

Смежные вопросы