いつもお世話になっておりますKonです。よろしくお願いします。
PCはWinXP、Visual C++ 2005 Express Edition を使用しています。
Windowsフォームアプリケーション でプロジェクトを作成しています。
最終目標は、ボタンを押すと全画面表示してくれるプログラムなのですが、
未熟者ですので、徐々に勉強しながら作ろうということで、
とりあえず、Escを押すと復帰する。という部分を作っています。
Form1のKeyDownプロパティから、下記の関数を呼びたいのですが、
private: System::Void Form1_KeyDown(System::Object^ sender,
System::Windows::Forms::KeyEventArgs^ e)
{
if ( e->KeyCode == Keys::Escape){
・・・略
}
Refresh();
}
そもそもどのKeyを押してもこの関数が呼ばれません。
Form1には、子ウインドウがあります。
何が問題なのでしょうか?
ごめんなさい。
this->KeyPreview = true;
になっていませんでした。
子ウィンドウがフォーカスを持っているので、キーダウンのイベントは子ウィンドウに
送られます。
Formで取得したい場合は、KeyPreviewプロパティをtrueにします。
http://msdn2.microsoft.com/ja-
jp/library/system.windows.forms.form.keypreview.aspx
chamaro さんありがとうございました。
Escape 受け取れたようです。