Как исправить ошибку с примером кода для подсказок MFC? - PullRequest
3 голосов
/ 29 июля 2010

Я получаю эту ошибку при компиляции следующего источника отсюда :

Ошибка 1, ошибка C2440: «static_cast»: невозможно преобразовать из «UINT (__thiscall CStaticLink :: *») (CPoint) 'to' LRESULT (__thiscall CWnd :: *) (CPoint) 'e: \ development \ tooltips \ cqa0311 \ statlink.cpp 28

Строка кода предназначена для ON_WM_NCHITTEST ниже

BEGIN_MESSAGE_MAP(CStaticLink, CStatic)
    ON_WM_NCHITTEST()
    ON_WM_CTLCOLOR_REFLECT()
    ON_WM_LBUTTONUP()
    ON_WM_SETCURSOR()
END_MESSAGE_MAP()

Я не уверен, что MFC voodoo нужно сделать, чтобы это скомпилировать.Мне не повезло?Я предполагаю, что это было построено с другой версией MFC?Я использую VS2008.

(я хочу иметь всплывающие подсказки для своих пунктов меню, как описано на этой веб-странице.)

1 Ответ

5 голосов
/ 29 июля 2010

С здесь :

Спасибо за отчет. Я исследовал и обнаружил, что это изменение было разработано в MFC для Visual Studio 2005. Это привело к несовместимости исходного кода, поэтому вам потребуется обновить метод OnNcHitTest, чтобы он возвращал LRESULT вместо UINT.

Пэт Бреннер
Разработка библиотек Visual C ++

Теперь OnNcHitTest должно быть объявлено следующим образом:

afx_msg LRESULT OnNcHitTest(
   CPoint point 
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...