0

タブページとしていくつかのダイアログを含むタブコントロールがあり、それぞれに次のタブを作成するボタンがあり、これらのボタンはデフォルトのボタンとして設定されているため、Enter キーを押すと次のタブに移動します。しかし、これらのボタンを押すと無効になり、そのタブに戻ると、クライアントは次のボタンを再度クリックできなくなります。問題は、ボタンが無効になっているときにEnterキーを押すと、デフォルトのボタンがなくなると、タブ ページが閉じます。Enter でダイアログを閉じるようです。しかし、タブを変更して再びそのタブに戻ると、ダイアログが再び表示されます。

ボタンが有効なときのダイアログ。Enter キーを押すのは、ボタンをクリックするのと 同じですここに画像の説明を入力 : 次のタブを作成した後の同じダイアログ: ここに画像の説明を入力 次のステップ ボタンが無効なときに Enter キーを押す! ここに画像の説明を入力 タブを変更し、再びそのタブに戻った後のダイアログ! ここに画像の説明を入力

挙動がわかりません!Enter ボタンについては何も書いていないことに注意してください。これらのボタンをデフォルトのボタンとして設定しただけです。これらのボタンがデフォルトのボタンではない場合でも発生します!どうすればよいでしょうか?

4

1 に答える 1

1

ダイアログのデフォルトのアクション(つまり、Enterキーを押したときに呼び出されるアクション、フォーカスがEnterキーをキャプチャする別のボタンまたはコントロールにない場合)は、OnOkを呼び出すことであり、デフォルトでは、OnOkはダイアログを閉じます。
したがって、ダイアログのOnOK関数をオーバーライドして、空の本文を指定する必要があります。

void CMyTabDlg::OnOk()
{
    // Nothing, so it does not close the dialog
}

また、デフォルトのボタンを他のボタンに設定することもできますが、念のため、とにかくOnOkをオーバーライドします。

于 2012-10-22T07:30:57.313 に答える