掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
WebBrowserでのBackSpaceキーの動作について (ID:26578)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
いつもお世話になっております。 昨日も別の質問をさせていただいたばかりですが,別口でもう1件お願いいたします。 WebBrowserでは,ショートカットキーやエンターキーが利かないという,有名なバグ があるとのことでしたが,過去ログ等を参考に,下のようなコードを書き, ショートカットキーやエンターキーが利くように修正をしてみました。 ですが,このコードを書くと,本来はIEのようにBackSpaceキーで前のページ「戻る」 ことができるはずが,BackSpaceキーが無効になってしまい,戻れなくなってしまい ました。 ↓参照したページ https://www.petitmonte.com/bbs/answers?question_id=973 この利かなくなったBackSpaceキーを再び有効にするには,どうすればよいでしょうか。 もう2か月以上悩んでいます。ぜひご回答をよろしくお願いいたします。 (環境:WinXP SP2 + Delphi 6 Personal) var FOleInPlaceActiveObject: IOleInPlaceActiveObject; procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); function ProcessKeyForBrowser(const Msg: TMsg): Boolean; var Key: TWMKey; begin Key.Msg := Msg.message; Key.CharCode := msg.wParam; Key.KeyData := msg.lParam; Key.Result := 0; Result := Self.IsShortCut(Key); end; var iOIPAO: IOleInPlaceActiveObject; Dispatch: IDispatch; begin if WebBrowser1 = nil then exit; if (Msg.message = WM_KEYDOWN) then begin Handled := ProcessKeyForBrowser(Msg); if Handled then exit; end; Handled := (IsDialogMessage(WebBrowser1.Handle, Msg) = True); if (Handled) and (not WebBrowser1.Busy) then begin Dispatch := WebBrowser1.Application; if Dispatch <> nil then begin Dispatch.QueryInterface(IOleInPlaceActiveObject, iOIPAO); if iOIPAO <> nil then begin FOleInPlaceActiveObject := iOIPAO; end; end; if FOleInPlaceActiveObject <> nil then begin if ((Msg.message = WM_KeyDown) or (Msg.message = WM_KeyUp)) and ((Msg.wParam = VK_Back) or // ←ここを外すとBkspが有効になる。 //しかし,テキスト編集エリアで押したとき,Bkspが二重に入力されてしまう。 //(カーソル前の文字が2文字消えてしまう。) (Msg.wParam = VK_Up) or (Msg.wParam = VK_Down) or (Msg.wParam = VK_Left) or (Msg.wParam = VK_Right)) then else FOleInPlaceActiveObject.TranslateAccelerator(Msg); end; end; end; // procedure TForm1.FormDestroy(Sender: TObject); begin FOleInPlaceActiveObject := nil; end; initialization OleInitialize(nil); finalization OleUninitialize;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.