- - PR -
IEコントロールへメッセージを送信する方法について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-20 12:59
しょしと申します。
皆様にはいつもお世話になっております。 IEコントロール上で、マウスカーソルをハイパーリンクの上に移動し、 そこで[Enter]キーを押すと、リンク先へ飛ぶようにしたいのですが、 うまくいきません。 何と度、ご教授いただきたくお願い申し上げます。 開発環境 WindowsXP VC++.net MFC // 下記のソースは、IEコントロールの作成、メッセージの取得、 // IEコントロールへのメッセージ送信について記載しています。 // IEコントロールの作成 m_wndIE.CreateControl(CLSID_WebBrowser, NULL, WS_POPUP | WS_VISIBLE, CRect(0, 0, 1024, 768), this, AFX_IDW_PANE_FIRST) // メッセージの取得と、IEコンポーネントへのメッセージ送信 BOOL XXXXX::PreTranslateMessage(MSG* pMsg) { if(pMsg->message == WM_KEYDOWN) { if(pMsg->wParam == VK_RETURN) { // IEコントロールへメッセージを送信する // 引数の値がよくわからない m_wndIE.SendMessage(WM_LBUTTONDOWN, 0, 0); } } } | ||||||||
|
投稿日時: 2005-11-20 14:24
こんにちは。
余計なお世話かもしれませんが、この仕様で大丈夫なんでしょうか? [Enter]キー押下時の元の動作を、別の動作に上書きすることになるので、 デフォルトの動作が失われてしまうことになるのではないかと思いますが。 それを承知でしたら… 次のようなコードでどうでしょうか?
※上記で使用しているmouse_event関数は、NT系ではSendInput関数を代わりに使うことが推奨されています。 | ||||||||
|
投稿日時: 2005-11-20 17:50
しょしと申します。
Tdnr_Symさん > [Enter]キー押下時の元の動作を、別の動作に上書きすることになるので、 > デフォルトの動作が失われてしまうことになるのではないかと思いますが。 上記の仕様を望んでおりましたので、非常に感謝しております。 (私の説明が足りなくて申し訳ございません。) ご親切にご回答をくださり、誠にありがとうございました。 |
1