ダイアログ テンプレートと CreateDialogIndirect を使用してダイアログが生成された後、ダイアログにコントロールを追加する必要があることがよくあります。このような場合、タブ オーダーはダイアログ テンプレートによって設定され、新しく作成されたコントロールを含めてタブ オーダーを変更する明らかな方法はありません。
8368 次
2 に答える
18
私は最近、これを実現するために SetWindowPos を使用できることを発見しました。タブ オーダーで新しいコントロールを挿入するコントロールを決定し、次のように SetWindowPos を使用します。
SetWindowPos(hNewControl, hOldControl, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
これにより、コントロールの z オーダーが変更され、タブ オーダーが確立されます。
于 2008-09-08T17:34:11.130 に答える
0
これは古い質問ですが、コンパイル時に行う方法は次のとおりです(ほとんどの場合、これが望ましいです):http: //msdn.microsoft.com/en-us/library/7039hzb0 (v=vs .80).aspx
私の好きな方法:
- [表示]メニューから、[タブの順序]を選択します。
- [インタラクティブに割り当てる]を選択します。
- タブオーダーの最初のコントロールにしたいコントロールの横にあるタブオーダーボックスをダブルクリックします。
- 他の各コントロールのタブ順序ボックスをクリックします。
- フォームの任意の場所をクリックして変更を保存し、タブオーダーモードを終了するか、ESCを押して変更を保存せずにタブオーダーモードを終了します。
于 2011-07-11T18:07:45.693 に答える