gpt4 book ai didi

c++ - 悬停子窗口时更改光标

转载 作者:可可西里 更新时间:2023-11-01 10:06:28 24 4
gpt4 key购买 nike

我有一个要求输入登录名/密码的窗口,它有五个子窗口:

  • 一个可编辑的:登录
  • 另一个可编辑的:密码
  • 一个确定按钮
  • 一个“忘记密码”
  • 还有一个“注册”。

基本上,当您点击最后两个中的任何一个时,您将被转到一个网站,您可以在该网站上执行适当的操作。

一切都很好,但我很想知道如何检查(我猜是消息)鼠标光标是否悬停在两个链接之一上,如果是这样,将其更改为手形光标。

我特别想知道如何检测它!我可以弄清楚如何使用 SetCursor 等更改光标!

编辑:我实际上发现 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 的文档很糟糕,所以我希望我的贡献有一天能帮助遇到我这种情况的人! ;)

关于c++ - 悬停子窗口时更改光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20220806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com