質問

VC ++アプリケーションには、埋め込みブラウザ(MSHTML)があります。正常に機能し、マウスを適切に処理します(たとえば、クリックと選択は正常に処理されます)。ただし、組み込みブラウザ上でのマウスホイールの回転は効果がありません。これが私の問題です。

私はMSHTML埋め込みの内部、および一般的なOLEにあまり精通していません。これはwxWidgetsアプリケーション(wxWidgetsはC ++ GUIライブラリです)であり、IEHTMLWinコンポーネント(MSHTMLコントロールをホストし、wxWindowインターフェイスでラップする)を使用しています。しかし、私はソースを持っているので、デバッグを喜んで行います。

wxWidgetsを忘れて、純粋にOLEとMSHTMLについて話す場合、問題の原因を探し始める適切な場所は何ですか? 「mshtmlマウスイベント」のバリエーションについて単純なグーグルを試しました。または「mshtml wheel」を使用しますが、適切なポインタを提供しませんでした。

IEHTMLWinのコードをご覧になりたい場合は、こちら。 iehtmlwin.cファイル(1.5 k行)にはすべてのOLE関連コードが含まれており、Webブラウザーコントロールをホストするために必要なすべてのインターフェイスを実装しています。マウスイベントが、含まれるwxWindowにまったく進まないことに注意してください(OnMouseは呼び出されません)。

{UPD} mshtmlバージョン:6.00.2900.3314。このコントロールをホストする他のアプリケーション(IEを含む)は、ホイールをサポートしています。 {/ UPD}


jdigitalヒント(winspectorについて)は非常に役に立ちました。メッセージをスニッフィングした後、私は問題がフォーカスに関連していることに気付きました。ブラウザコントロールをクリックしても、ブラウザコントロールにフォーカスが設定されず(たとえば、RichEditとは異なり)、WM_MOUSEWHEELはそこに送信されません。したがって、新しい問題はフォーカスを設定することです。

役に立ちましたか?

解決

Winspector( http://www.windows-spy.com/ )を試してみてください。 Windowsメッセージを表示できるようにします。スクロールホイールイベントが通過することを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top