開いたウインドウを[ESC]キーで閉じるには

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
yama
記事: 58
登録日時: 2005年5月31日(火) 21:11
お住まい: 新潟市
連絡する:

開いたウインドウを[ESC]キーで閉じるには

#1 投稿記事 by yama »

寒くなってきましたね。

MainWndでコマンドボタンを押したとき

Dim retcode As Long
retcode=DialogBox(hMainWnd,"View")
If retcode Then
End If

などでウインドウを表示したときに、[ESC]で閉じるものと閉じないものがあります。

ウインドウの方のスタイルなど同じ条件なのですが違いが見つかりません。
開いたウインドウに閉じるのコマンドボタンだけのときは、[ESC]で閉じました。
閉じるとキャンセル二つボタンをつけたときは閉じません。

どのような設定のときに閉じるのでしょうか?
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#2 投稿記事 by イグトランス »

たしかESCを押すとIDの値がIDCANCELのWM_COMMANDメッセージがくるので,
それをダイアログプロシージャで処理してやればできると思います。
yama
記事: 58
登録日時: 2005年5月31日(火) 21:11
お住まい: 新潟市
連絡する:

#3 投稿記事 by yama »

その後前記のプロジェクトの不要部分を削除しながら二つのコードの
違いを確認してみて次のことがわかりました。

ESCキーでウインドウが閉じる条件は

EditBoxがあり複数行にチェックが入っていること。
かつEditBoxにフォーカスがセットされているとき。


Sub Opt_Create(ByRef CreateStruct As CREATESTRUCT)
'hEditにフォーカスをセット
' SetFocus(GetDlgItem(hOpt, EditBox1))
End Sub

なぜかはわかりません・・

イグトランス (egtra)さんこんにちは
>IDCANCELのWM_COMMANDメッセージがくるので,
>それをダイアログプロシージャで処理してやればできると思います。

の方法はバックサーチなどを探してを研究してみます。ありがとうございました
返信する