【问题标题】:How to fix error with sample code for MFC tooltips?如何使用 MFC 工具提示的示例代码修复错误?
【发布时间】:2023-03-30 03:45:01
【问题描述】:

编译以下源代码from here时出现此错误:

错误 1 ​​错误 C2440:“static_cast”: 无法从 'UINT (__thiscall CStaticLink::* )(CPoint)' 到 '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。

(我想为我的菜单项提供工具提示,如该网页上所述。)

【问题讨论】:

    标签: c++ mfc tooltip


    【解决方案1】:

    来自here

    感谢您的报告。我调查并发现此更改是设计使然,在 Visual Studio 2005 的 MFC 中。这引入了源不兼容,因此您需要更新 OnNcHitTest 方法以返回 LRESULT 而不是 UINT。

    帕特·布伦纳
    Visual C++ 库开发

    现在OnNcHitTest 应该声明如下:

    afx_msg LRESULT OnNcHitTest(
       CPoint point 
    );
    

    【讨论】:

    • 现在我觉得自己很笨,但是谢谢。宏使我摆脱了那里的气味。 ON_WM_NCHITTEST() - 天哪,我多么鄙视 MFC 和所有这些宏巫术。
    猜你喜欢
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 2019-08-08
    • 2011-06-12
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多