做了很多研究,试图弄清楚如何让它正常工作。我读到如果您过滤 WM_NOTIFY -> NM_CLICK,它将捕获系统链接的实际单击事件。麻烦的是它捕捉到了事件,尽管它陷入了无休止的递归中,并且在几秒钟内你就有了数百个浏览器窗口,或者链接打开了。
采取的步骤:
- 在对话框中创建 Syslink
- 为Syslink控制链接添加标题并将IDD更改为IDC_LINK1
过滤 NM_CLICK 事件的 WM_NOTIFY
case WM_NOTIFY: //case NM_CLICK: switch(LOWORD(wParam)) { case NM_CLICK: switch(LOWORD(wParam)) { case IDC_LINK1: // Standard ShellExecute with added check for IsLinkCtrl to make sure its the right kind of control. OpenLink(hWndDlg, LOWORD(wParam)); break; } break; } break;
我想我真正的问题是我该如何正确地做到这一点?我没有看到任何很好的例子来说明如何正确过滤 Syslink 以将链接作为 url 执行。