WindowsネイティブのC++/ Win32/MFCダイアログアプリがあります。ダイアログでIEActiveXコントロールを使用して、HTMLコンテンツをレンダリングしています。レンダリングされるHTMLにはボタンが含まれています。以下に示すように、ボタンにはonClickjavascriptハンドラーがあります。
<input type="button" id="uniqueButtonID" name="uniqueButtonName" value="blue" onClick="OnButtonClick('blue');">
現在、ボタンのクリックは、表示されているjavascriptハンドラーによってページで処理されます。これはすべて機能します。
代わりに、ダイアログC++コードのボタンクリックを処理したいと思います。
ダイアログで他のイベントを処理した経験があります。たとえば、以下は機能し、ドキュメントの完全なイベントとナビゲーションを処理できます。
BEGIN_EVENTSINK_MAP(DMyDlg, CDialog)
ON_EVENT(DMyDlg, IDC_EXPLORER2, 259, DMyDlg::DocumentCompleteExplorer2, VTS_DISPATCH VTS_PVARIANT)
ON_EVENT(DMyDlg, IDC_EXPLORER2, 250, DMyDlg::BeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
END_EVENTSINK_MAP()
ただし、これらは事前定義されたよく知られたイベントです。onClick=""セクションのボタンで定義したものを処理するように変換する方法がわかりません。
誰もがこれを行う方法を知っていますか?ここでの動機は、ビジネスロジックを定義する別のC++アプリで使用されているコードがあることです。ここで使用しているのと同じビジネスロジックが必要です。現在、私はそれを毎回Javascriptに翻訳する必要があります。C ++コードでイベントを処理できれば、コピー/貼り付け(またはDLLを介して再利用)するだけで、Javascriptの変換段階を回避できます。