検索結果 3 件

by chemo
9年前
フォーラム: C言語何でも質問掲示板
トピック: 【WINAPI】ボタンをエンターキーで押下させたい
返信数: 26
閲覧数: 5095

Re: 【WINAPI】ボタンをエンターキーで押下させたい

ここまでは完璧だったんですが、なぜか右上の×で終了しようとすると、なぜか終了してくれませんでした。 今までは右上の×を押すだけで、恐らくDefWindowProcがウィンドウの終了処理をしてくれたんだと思うのですが、 DefDlgProcではウィンドウの終了処理をしてくれないのでしょうか? 右上の×を押すとメッセージ的には、WM_CLOSEは発生しているようなのですが、 どうもDefDlgProcがちゃんと終了処理してくれないようです。 しかも、その後にWM_COMMANDが発生して、WPARAMの下位ワードに2が入っていたため、 あるボタンの処理が実行されてしまうというおかしな状況が発生し...
by chemo
9年前
フォーラム: C言語何でも質問掲示板
トピック: 【WINAPI】ボタンをエンターキーで押下させたい
返信数: 26
閲覧数: 5095

Re: 【WINAPI】ボタンをエンターキーで押下させたい

自分の説明が悪かったですかね。
特定のコントロールにおいて IsDialogMessage で処理されたくない動作を指定する際に
WM_GETDLGCODE を使用するはずなんですよね。
ただし、WM_GETDLGCODE メッセージハンドラを実装するにはコントロールをサブクラス化
する必要がありますね。
by chemo
9年前
フォーラム: C言語何でも質問掲示板
トピック: 【WINAPI】ボタンをエンターキーで押下させたい
返信数: 26
閲覧数: 5095

Re: 【WINAPI】ボタンをエンターキーで押下させたい

WM_GETDLGCODE でアプリケーション側で処理したいコードを返してはだめでしょうか?

ちなみに WM_GETDLGCODE はコントロール側のウィンドウプロシージャで処理します。
例えばダイアログ側に ENTER キーによる DEFPUSHBUTTON の処理をされたくない場合は
WM_GETDLGCODE のメッセージに対して DLGC_DEFPUSHBUTTON を返せば、
ダイアログ側は何もしなかった………はずです。
(すみませんなにぶん大分昔の知識なので)

詳細検索ページへ移動する