我正在使用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
如何在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] 举报,一经查实,本站将立刻删除。