WinxpのVC++6.0です。
コンパイルして実行すると、ファンクションキーでも動作するように設定してあるので
すが、リソースクラスの『Accelerator』の『IDR_MAINFRAME』で追加してないキー(例え
ば、VK_F5)を押すと、ツールバーの『ファイル』が反応しているみたいなんですが、
『Accelerator』以外でどこか設定する所があるのでしょうか?
リソースクラスのMenuの所では『ファイル』に対してファンクションキーでも動くよう
に特に設定していないです。
解決したいのは設定していないファンクションキー(例:F5)が反応しないようにしたい
です。
PreTranslateMessage()等にも キー押下時に(EnterとかAとかF5とかとか)メッセージが
送られてきますが、そちらでは何かしてませんか?
>PreTranslateMessage()等に…
ちょっとその箇所が確認できませんが、いじってはいないと思います。
http://www24.cds.ne.jp/~neg/pro/piyo1/dialog/enteresc.html
場当たりな対応ですが、上記と同様のことを VK_F5 に対して行えば、
おそらく反応しなくなると思います。
しかし、なぜ F5 で メニューのファイル が反応するのかが気になりますね。。。
根本的な問題解決については、識者にお任せいたします。
どうしても見当がつかないのであれば
まず、新たにAppウィザードでSDIのプロジェクトを起こし、
そこから追加した部分を順に入れながら
F5が反応するようになるのがどの時点からなのかを確認してみては?
少なくとも生成された雛形をそのままビルドした状態では反応しないようですから。
三草さん、参考になるものありがとうございました。
無意識ではないですが、どこかで宣言したのだと思います。何もしないで反応するわけ
はないので。
PATIOさん、確かにそうですね、はじめからひとつずつ確認していけばどこに原因がある
か発見されますからね。
F10じゃなくてF5ですか?
ITOさん、正確にはF10です。
例えでF5と言ったので。
そりゃ... あたりまえなのでは...
全ての Windows アプリケーションは F10 に反応するはず。
反応しないように作るほうが困難。
なーる、他の参考にしていたプログラムソースはF10では反応してなかったので…。ど
っかで変更されてたんですね。
確かにここのサイトでもF10押せば反応してるし。
> 場当たりな対応ですが、上記と同様のことを VK_F5 に対して行えば、
> おそらく反応しなくなると思います。
ためしにVK_F10でやってみましたが、しっかり反応しますね。
申し訳ないです。
# 最近間違えばっかりだ;;
あー、えーと。
F5とF10じゃ大違いなのでその辺は事実をありのまま出してください。
そうしないと試しても同じ結果がでなので。
F10で反応するのはWindowsのHELPでWindows ショートカット キーの概要について
調べて見てください。そこにちゃんと載っています。
F10なら、WM_SYSKEYDOWN/WM_SYSKEYUPですかね。
Altキーを単独で押下した場合と同じような動作しますね。
>なーる、他の参考にしていたプログラムソースはF10では反応してなかったので…。
本当にF10ですか、F10だとするとそのソフトは、何か特別な処理をしているのかな...
通常F10はウインドウ予約ということで、ソフトの処理には使わないのが普通だと
思います。
大変遅くなりました。
三草さん、
>> 場当たりな対応ですが、上記と同様のことを VK_F5 に対して行えば、
>> おそらく反応しなくなると思います。
>ためしにVK_F10でやってみましたが、しっかり反応しますね。
>申し訳ないです。
いえいえ、わざわざすいませんでした。Enter、Escキーにのみ対応するものだったので
しょうか。
PATIOさん、
じっさいにはF10でしたが、例えでF5と言ってわかえいずらくしてました。
>F10で反応するのはWindowsのHELPでWindows ショートカット キーの概要について
>調べて見てください。そこにちゃんと載っています。
よく見てみます。
瀬戸っぷさん、
>F10なら、WM_SYSKEYDOWN/WM_SYSKEYUPですかね。
>Altキーを単独で押下した場合と同じような動作しますね。
リソースファイルをみて確認してみます。
ITOさん、
>本当にF10ですか、F10だとするとそのソフトは、何か特別な処理をしているのかな...
>通常F10はウインドウ予約ということで、ソフトの処理には使わないのが普通だと
>思います。
おそらくなんらかの処理をしているんじゃないでしょうか。そのソフトではF10は不必要
なキーなので反応はしていませんでした。
結局、F10に適当なものを割り当てて反応はしなくなりましたが、今後はみなさんの意見
を参考にもっとよい方法で解決していきたいです。
ありがとうございました。