Текстовый редактор с наследником Cedit

  • Автор темы Автор темы mahsus
  • Дата начала Дата начала
M

mahsus

Пишу текстовый редактор в VS 2005. Для этого создаю наследника СEdit CMEdit. Создаю функцию
[codebox]afx_msg BOOL OnUndo();[/codebox]
Естественно в файле MEdit.cpp пишу
[codebox]BOOL CMEdit::OnUndo()
{ //отмена
return CEdit::Undo();
}[/codebox]
Все нормально. Для CMEdit будет контексное меню, которое создаю динамически. В нем будет такой пункт как ID_EDIT_UNDO, поэтому в карте пишу
[codebox]
BEGIN_MESSAGE_MAP(CMEdit, CEdit)
ON_COMMAND(ID_EDIT_UNDO, OnUndo)
END_MESSAGE_MAP()
[/codebox]
При компиляции
j:\...\medit.cpp(41) : error C2440: 'static_cast' : cannot convert from 'BOOL (__thiscall CMEdit::* )(void)' to 'AFX_PMSG'
Хотя, если писать в MSVisual C++6, такой ошибки нет. В чем может быть проблема? Подскажите пожалуйста.
Заранее благодарен за ответ.
 
почему нельзя сделать чтобы возвращало bool?
 
Можно глупый вопрос? Кому вы хотите возвращать результат? Юзер выбрал пункт меню, MFC вызывает Ваш метод и результат его выполнения фиолетов для MFC. Или Вы собираетесь вызывать этот метод напрямую?
 
Почему-то в 6 студии все нормально..., но у меня не только на этой функции ошибка...
Вот такую ошибку дает
j:\...\medit.cpp(40) : error C2440: 'static_cast' : cannot convert from 'void (__thiscall CMEdit::* )(void)' to 'void (__thiscall CCmdTarget::* )(UINT)'

это функция
afx_msg void OnMenuItemSelect();

написал макрос так:
ON_COMMAND_RANGE(STARTFROM, STARTFROM+11, OnMenuItemSelect)

не знаешь причем тут CCmdTarget и UINT...?
 
это функция
afx_msg void OnMenuItemSelect();

написал макрос так:
ON_COMMAND_RANGE(STARTFROM, STARTFROM+11, OnMenuItemSelect)

не знаешь причем тут CCmdTarget и UINT...?

Должно быть: afx_msg void OnMenuItemSelect( UINT ID );
В функцию придет ID выбранного пункта меню
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!