微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SS_NOTIFY和WM_SETCURSOR

我试图用C ++来模仿一个对话框上的超链接

我正在使用SS_NOTIFY进行静态控制设置,以便用户可以单击该控件并转到网页:

LTEXT "Caption2",IDC_SETTINGS,9,36,219,13,SS_NOTIFY

使用SS_NOTIFY设置,我可以拦截点击,因为它是针对静态注册的:

case IDC_STC_URL: ShellExecute(NULL,"open","http://google.co.uk",NULL,SW_SHOWnorMAL); return TRUE;

我也通过拦截WM_SETCURSOR消息将光标更改为一只手:

什么是BOOL WINAPI返回types

pyautogui点击权限错误

如何在python中确定外部程序是否打开?

带有AWS EC2的ZeroMQ服务器/客户端

检测文件是否被操作系统阻止

case WM_SETCURSOR: POINT pt; RECT rect; GetCursorPos( &pt ); GetwindowRect( GetDlgitem(hwnd,IDC_SETTINGS),&rect ); if (PtInRect(&rect,pt)) { SetCursor(LoadCursor(NULL,IDC_HAND)); } else { SetCursor(LoadCursor(NULL,IDC_ARROW)); } return TRUE;

但是,如果设置了SS_NOTIFY,则光标更改不起作用。 当SS_NOTIFY是disabeled它的确如此。 但是,然后点击没有注册对静态,所以ShellExecute()不打开URL。

有没有人有什么我做错了什么build议?

谢谢,还有。

批量文件中的CSV格式

仅列出“设备和打印机”面板中显示的设备

可执行文件从命名pipe道启动?

如何在Windows上用Python更改文件夹图标?

在Windows XP中,从C ++中的压缩标准库中embeddedPython 3.3

对话框proc的返回值与窗口proc的返回值不同。 (文档的对话框过程: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms645469 (v= vs.85).aspx – 值得仔细阅读。)从对话框的返回值只是TRUE或FALSE ,表示消息是否被处理,但窗口过程的返回值是窗口消息处理的返回值。

如果窗口消息有一个有意义的返回值(大多数不这样做,但WM_SETCURSOR是这样做的),在对话框过程中,需要使用SetwindowLong(hwnd,DWL_MSGRESULT,value)来设置结果,然后从对话框返回TRUE PROC。

我认为认的DWL_MSGRESULT是零,所以在这代码中,你将从WM_SETCURSOR消息返回FALSE 。 这表明静态应该做它自己的事情 – 即设置箭头光标。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐