13

ダイアログ テンプレートと CreateDialogIndirect を使用してダイアログが生成された後、ダイアログにコントロールを追加する必要があることがよくあります。このような場合、タブ オーダーはダイアログ テンプレートによって設定され、新しく作成されたコントロールを含めてタブ オーダーを変更する明らかな方法はありません。

4

2 に答える 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

私の好きな方法:

  1. [表示]メニューから、[タブの順序]を選択します。
  2. [インタラクティブに割り当てる]を選択します。
  3. タブオーダーの最初のコントロールにしたいコントロールの横にあるタブオーダーボックスをダブルクリックします。
  4. 他の各コントロールのタブ順序ボックスをクリックします。
  5. フォームの任意の場所をクリックして変更を保存し、タブオーダーモードを終了するか、ESCを押して変更を保存せずにタブオーダーモードを終了します。
于 2011-07-11T18:07:45.693 に答える