お世話になります。
SDI(VIEW)プログラムを作っていまして、PreTranslateMessage関数等で
ファンクションキー押下をスキャンして任意の処理をさせたいのですが
F10はデフォルトで?どうしてもフォーカスがウィンドウ上部のメニューの
方へ移るようになっていますし、HELPキーなどもスキャンが効きませんが
それらのキー押下も任意の処理へ制御できないものでしょうか?
> F10はデフォルトで?どうしてもフォーカスがウィンドウ上部のメニューの
> 方へ移るようになっていますし、HELPキーなどもスキャンが効きませんが
> それらのキー押下も任意の処理へ制御できないものでしょうか?
VK_F10ならば…
WM_KEYDOWN/WM_KEYUPでなくWM_SYSKEYDOWN/WM_SYSKEYUPで飛んでくるかと。
HELPキーというのがなんなのか不明ですが…
Spy++使ってキーを押した時にどんなメッセージが飛んでくるか調べるのがよろしいかと。
瀬戸っぷ様、ご教授ありがとうございます。
VK_F10の方、アドヴァイスどおりトライしてみます。
>HELPキーというのがなんなのか不明ですが
どうもすいませんでした。自分は未だにNECのPC-98を使っていまして(苦笑)
テンキーの最上段の[HOMECLR]キーの右、マイナス'-'キーの左に挟まれて
[HELP]キーというのがあるのですが、下脇にいちおEndとも書かれていますし
たぶんAT互換機では[END]キーになるのだと思いますが、そのキーの押下も
WM_KEYDOWNでは反応してくれません。
そちらもWM_SYSKEYDOWNの方で制御できますでしょうか。
それと、Spy++とはなんでしょうか?今はピンときていません。^^;
スタートメニューの中の、(VC++ 6.0 であれば)Visual C++ 6.0 ツール(でいいんで
したっけ?)の中にあるツールです。
Windows アプリが、ウィンドウ(厳密に言えばスレッドかな?)に送られたメッセージ
に反応して動いているというのはご存知だと思いますが、Spy++ とは、どのウィンドウ
にどんなメッセージが送られ、プログラムがそれにどう応答したかを調べることができ
るソフトのことです。
個人的には、Dependency Walker と並んで、VC++ の付属ツールの中での使用頻度の1、
2を争う必携ツールです。
シャノン様、Spy++についてご返答ありがとうございました。
それほどポピュラーなツールを自分が知らなかったのが
ちょっとお恥ずかしい気もします。^^;
これから、そういうツール類もバリバリ使いこなしながら
作れるようになっていきたいです。
瀬戸っぷ様
VK_F10はご教授どおりWM_SYSKEYDOWNから検知できました。
PC-98キーボードの[HELP]キーはVK_ENDが正解でした。
これも元は、瀬戸っぷ様のご返答から気付けたことです。
ではVK_HELPがどのキーのことなのか?わからなくなりましたが
それは今どうでもよくなりました~
この度はありがとうございました。
とりあえず解決のようで。
> どうもすいませんでした。自分は未だにNECのPC-98を使っていまして(苦笑)
こちらのHELPキーの存在は知っていましたが…(7年前はユーザーでしたし)
ALTキーはGRAPHキーでしたかね。
VK_HELPは…謎です。
「HELP キー キーボード」でgoogle検索して、こんなのみつけはしましたが。
http://www.phoenix-c.or.jp/~olfa/software/41_keyboardmap.html
http://www.sixnine.net/keyboard/useless.html
Spy++はウィンドウに関していろいろ調べられます。
(親子・兄弟関係とか、表示されている座標とかメッセージの覗き見とか)
# 昔の友達が大戦略プレイしてて、突然「ヘルプ!ヘルプ!!」とか連呼しながら
# HELPキー(X1turboZ)を連打した時は爆笑したなぁ。