【问题标题】:How to change the cursor when a button is clicked单击按钮时如何更改光标
【发布时间】:2015-10-12 05:44:35
【问题描述】:

我正在使用 Visual Studio 2008 开发 C++ MFC 应用程序。我的 UI 中有一个按钮,当用户单击该按钮时,我想将鼠标指针更改为平移手。我该怎么做?

【问题讨论】:

标签: c++ visual-studio-2008 mfc


【解决方案1】:

使用SetCursor()。单击按钮时,将bool m_bHand 设置为true。

在 OnMouseMove() 中...

if (m_bHand == true)
{
    SetCursor(::LoadCursor(NULL, IDC_HAND));
}
else
{
    SetCursor(::LoadCursor(NULL, IDC_ARROW));
}

LoadCursor的第二个参数可以是你自己的ico资源ID。

希望这会有所帮助。 :-)

【讨论】:

    【解决方案2】:

    终于找到答案了。双击按钮,我将以下代码行复制为按钮功能。这里 IDC_CURSOR1 是我已经导入到我的 MFC 项目中的光标的 ID。我在 C:\Windows\Cursors 中找到了游标。

    SetClassLong(m_hWnd,
              GCL_HCURSOR,
                         (LONG)LoadCursor(AfxGetInstanceHandle(),
                 MAKEINTRESOURCE(IDC_CURSOR1)));
    

    【讨论】:

    • 这是针对局部问题的全局解决方案(嗯,不是真正的解决方案)。您想要更改特定窗口类实例的光标形状。更改窗口类(以及该类的所有窗口实例)太过分了。在WM_SETCURSOR 处理程序中调用SetCursor
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2019-07-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    相关资源
    最近更新 更多