これを適切に機能させる方法を見つけようとして、かなりの調査を行いました。WM_NOTIFY-> NM_CLICKをフィルタリングすると、syslinkの実際のクリックイベントがキャッチされることを読みました。問題は、イベントをキャッチすることですが、無限の再帰でスタックし、数秒で何百ものブラウザウィンドウが表示されるか、リンクが開いたままになります。
実行した手順:
- ダイアログで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;
私の本当の質問は、どうすればこれを適切に行うことができるかということだと思います。リンクをURLとして実行するためにSyslinkが適切にフィルタリングされる方法を示す良い例は見当たりません。