将光标悬停在子窗口上时更改光标
Change cursor when hovering a child window
我有一个要求登录/密码的窗口,其中有五个子窗口:
- 可编辑:登录
- 另一个可编辑的:密码
- OK按钮
- "忘记密码"
- 还有一个"注册"
基本上,当你点击最后两个时,你会被发送到一个网站,在那里你可以执行适当的操作。
这一切都很好,但我很想知道如何检查(我想是通过消息)鼠标光标是否悬停在两个链接中的一个上,如果是这样的话,将其更改为手动光标。
我特别想知道如何检测它!之后我可以用SetCursor之类的方法来改变光标!
EDIT:事实上,我发现WM_SETCURSOR是一个非常容易处理的消息。基本上,你检查wParam是否等于它悬停在上面的子窗口的句柄,瞧!
但事实上,我发现SetCursor
是一个更大的问题。
以下是我所做的:
我的游标声明:
static HCURSOR hCursorHand;
static HCURSOR hCursorArrow;
此处设置值(在WM_CREATE的句柄中):
hCursorHand = LoadCursor( NULL, IDC_HAND );
hCursorArrow = LoadCursor( NULL, IDC_ARROW );
这是我设置的地方:
else if (msg == WM_SETCURSOR)
{
if ((HWND)wParam == hwndLinkFPasswd || (HWND)wParam == hwndLinkSignUp)
SetCursor(hCursorHand);
else
SetCursor(hCursorArrow);
}
我知道光标被正确地检测到了(谢谢断点),但它似乎什么都没做。光标停留在箭头上。。。
所以!正如我所说,我想通了!(我只是在最初的8小时内无法回答我的问题!)
以下是我错过的:(对于任何有同样问题的人)
else if (msg == WM_SETCURSOR)
{
if ((HWND)wParam == hwndLinkFPasswd || (HWND)wParam == hwndLinkSignUp)
{
SetCursor(hCursorHand);
return(TRUE);
}
}
我发现这个API的文档很糟糕,所以我希望有一天我的贡献能帮助到处于我这种情况的人!)
相关文章:
- 如何在Qt C++中更改光标
- 将鼠标悬停在问题上时与预期">"相关的代码错误
- 按钮悬停在 QT 中垂直布局的选项卡小部件中不起作用
- Win32 API 控制台光标在 WriteConsole 后不移动
- 在 macOS 中使用 C/C++ 设置鼠标光标图像
- 如何更改输出的位置或光标在输出处,以便在"Code Blocks"中C++
- 使用 C++将文本光标移动到屏幕中不可见的行
- 在 C# 中更改鼠标光标图标
- ASCII 旋转光标 (TUI) 动画出现问题
- 将鼠标悬停在图片框上时,如何显示带有 x-y 坐标的十字准线光标?
- 以编程方式在任何按钮上突出显示 Qt 鼠标悬停按钮
- 将光标单独移动到当前位置
- 如何获得鼠标光标连接时按下左键单击和在C++中释放左键单击时?
- 由于选项卡顺序的原因,鼠标光标总是得到错误的hwnd-MFC应用程序
- 如何在C++中模拟鼠标光标的移动
- 如何确定鼠标光标所在的控制台字符
- 如何在C++中使用光标定位
- 如何通过悬停光标来获取UIAutomationElement的NamePropertyId
- 将光标悬停在子窗口上时更改光标
- HWND鼠标悬停时改变光标