いつもお世話になります。
今,プログラム作成の練習としてブラウザを作成しているのですが,
不明な点が出てきました。
以下の点について,どなたかご存知でしたらお教えください。
①TWebBrowserで,画像が張られているホームページを表示させます。
②表示させるページは,
http://news.google.co.jp/nwshp?ie=UTF-8&oe=UTF-8&hl=ja&tab=wn
等,縦のスクロールバーが表示されるページです。
(ちなみに上記のURLはgoogleのニュースサイトです。)
③この時点で,マウスホイールによるスクロールが利いていることを確認します。
④このページの画像をマウスで右クリック,「名前を付けて画像を保存」
をクリックし,画像の保存ダイアログを出します。(画像は保存しなくてもかまいません。)
⑤上の④の操作を行った後は,なぜかマウスホイールが利かなくなっています。
この⑤において,マウスホイールを利くようにしたいと思っています。
ですが,今のところ,とるべき手段が全く思いつきません。
よろしくお願いいたします。
※WebBrowser上にフォーカスがあれば,マウスホイールが正常に動作することはわかっていました。
なので,WM_ACTIVATEのメッセージを捕まえて,保存ダイアログ→ブラウザのフォーム
へフォーカスが移るタイミングでWebBrowserへフォーカスを戻してやれば解決
できるかと思い,ApplicationEventsコンポーネントのOnMessageイベントも
使用してみましたがWM_ACTIVATEのメッセージは飛んでいないようでした。
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
・
・
・
begin
if (Msg.message = WM_Activate) then
Label1.Caption := 'フォーカスを戻しました。'
・
・
end;
環境の記載がもれていました。
環境はWin Xp Home SP2 + Dlphi 6 Personal です。
単に右クリックのタイミングを捉えてBrowser1にフォーカスを当てる
だけでうまくいきました。
お騒がせして申し訳ありませんでした。
ツイート | ![]() |