0

ダイアログ ベースのアプリケーションで CMFCTabCtrl を使用しています。各タブに CPropertyPages を追加するか、各タブ ページにコントロールを追加する必要があります。Microsoft のサンプルから、次のようにコントロールを動的に追加できることを知っています

m_wnd1.Create (WS_CHILD | WS_VISIBLE, CRect (0, 0, 0, 0), &m_wndTabConfiguration, 1);
m_wnd1.SetFont (&afxGlobalData.fontRegular);
m_wnd1.SetWindowText (_T("Edit 1"));

m_wnd2.Create (WS_CHILD | WS_VISIBLE, CRect (0, 0, 0, 0), &m_wndTabConfiguration, 2);
m_wnd2.SetFont (&afxGlobalData.fontRegular);
m_wnd2.SetWindowText (_T("Edit 2"));


m_wndTabConfiguration.AddTab (&m_wnd1, _T("One"), 0, FALSE);
m_wndTabConfiguration.AddTab (&m_wnd2, _T("Two"), 1, FALSE);

これは正常に機能しています。しかし、コントロールのレイアウトを静的に設計し、タブ ページに表示したいと考えています。

どんな助けでも大歓迎です...

4

1 に答える 1

0

あなたの質問を正しく理解できたら、CMFCTabCtrl のさまざまなタブにコントロールを追加しますか? もしそうなら、次のいずれかを介してコントロールを静的に作成できると思います。

(1) Visual Studio 2010 に付属のビジュアル エディターを使用すると、ビジュアル エディターはプロジェクトの .rc ファイル (リソース フィルターの下にあります) を変更します。

また

(2) ダイアログ ボックス内に新しいコントロールのエントリを追加することで、プロジェクトの .rc ファイルを直接編集できます。

どちらの方法を選択しても、これらのコントロールをタブ コントロールの正しい位置に配置する必要があります。次に、ユーザーによるタブの変更に関連する Windows メッセージをマップし (メッセージ ID などの適切な情報については MSDN を確認してください)、それをダイアログ クラスの関数にマップし (OnTabChange としましょう)、どのコントロールを変更するかを決定します。非表示にして表示するもの (control.ShowWindow(SW_HIDE) または control.ShowWindow(SW_SHOW)) は、現在アクティブ/選択されているタブに基づいています。マッピングは、ボタン クリック イベントなどをキャプチャする方法と同様に行われます。

于 2013-09-27T19:29:14.597 に答える