CTabCtrl
をCDockablePane
の内側に作成していて、1ページしか追加していない場合、タブバーを表示する必要はありません。 ページが1つしかないときにタブバーを削除するにはどうすればよいですか? ありがとうございます。1つのページしかないときにCTabCtrlからタブバーを削除する
答えて
タブを非表示にして、CTabCtrl::AdjustRect
を使用して子ページの位置を変更できます。たとえば:あなたは、タブの境界が常に見えるようにしたい場合は
void CMyDialog::show_tab_bar(bool show)
{
tab.ShowWindow(show ? SW_SHOW : SW_HIDE);
CRect r;
tab.GetWindowRect(&r);
ScreenToClient(&r);
tab.AdjustRect(FALSE, &r);
page1.SetWindowPos(0, r.left, r.top, r.Width(), r.Height(), SWP_HIDEWINDOW);
page2.SetWindowPos(0, r.left, r.top, r.Width(), r.Height(), SWP_HIDEWINDOW);
...
page1.ShowWindow(SW_SHOW);
}
別の方法としては、CTabCtrl::DeleteAllItems
を使用することができます。
void CMyDialog::show_tab_bar(bool show)
{
tab.DeleteAllItems();
if (show)
{
tab.InsertItem(0, L"Page 1");
tab.InsertItem(1, L"Page 2");
...
}
CRect r;
tab.GetWindowRect(&r);
ScreenToClient(&r);
tab.AdjustRect(FALSE, &r);
page1.SetWindowPos(0, r.left, r.top, r.Width(), r.Height(), SWP_HIDEWINDOW);
page2.SetWindowPos(0, r.left, r.top, r.Width(), r.Height(), SWP_HIDEWINDOW);
...
page1.ShowWindow(SW_SHOW);
}
回答ありがとうございます。 ' CTabCtrl'も非表示にすると、 'page1.ShowWindow(SW_SHOW)'を使用してもページが非表示になります。 他の提案はありますか? ありがとうございます@Barmak Shemirani –
明らかに、タブコントロールの子としてページダイアログを作成しましたが、これは間違っています。この場合、 'tab.DeleteAllItems()'を使用してください。私はすでにこれを代替案として示しています。しかし、私のやり方と同じように、子ウィンドウの位置を計算しないでください。 –
ありがとうございます@Barmak Shemirani –
- 1. Node.JS/Javascriptページのタブバーから画像を削除します
- 2. トップバー/ヘッダー/メインナビゲーションリンクを1ページから削除
- 3. プッシュされたスタックをタブバーから削除/解除する
- 4. タブバーの削除
- 5. Umbracoのコンテンツからページを削除できない
- 6. ドロップダウンリストから1つの値を削除してください
- 7. ページをリロードするときに変数からデータを削除します
- 8. ウェブサイトの特定のページからナビゲートするときにクッキーを削除する
- 9. C#:2つの異なるディレクトリからすべてのファイルを削除するか、全く削除しない
- 10. オブジェクトをページから削除する
- 11. ローディングフェザーからページを削除する
- 12. 削除したページ/ポストのパーマリンク/リファレンスをwordpress dbから削除するには?
- 13. Mysqlは挿入と削除を1つにトリガしますか?
- 14. DotnetNukeのWebページからヘッダとフッタを削除するには?
- 15. 複数のセットから1つのオブジェクトを削除する
- 16. 軸のテキストを1つのファセットから削除する
- 17. 1つの列からのみ重複を削除する
- 18. ビットマップデータから1つの色のピクセルを削除する
- 19. リモートXMLファイルから削除したときにワードプレスからデータを削除
- 20. ビルドとナビからページを削除しますか?
- 21. ページのURLからページを削除するには
- 22. redux-persistから1つのレデューサーを削除する方法
- 23. Git - 1つのブランチからファイルを削除する方法
- 24. Firebaseリストから1つのアイテムを削除/更新する
- 25. 1つのリンクリストから値を削除する
- 26. 有向グラフから1つのエッジを削除するG
- 27. jqueryクッキーから1つの値を削除する
- 28. Djangoカートから1つのアイテムを削除する
- 29. データベースから1行を削除する
- 30. CSVから1行を削除する
あなたは(http://stackoverflow.com/a/4409941/366904)[そのように]、 'TCM_ADJUSTRECT'メッセージを捕捉することによりリサイズでこれを行うことができます。私はそれをMFCで動作させることはできません。私が間違っていることを確信していない。私はダイアログに追加されたCTabCtrlのサブクラスを試しました。私が手動で送信しない限り、このメッセージは決して処理されませんでした。 –
TCM_ADJUSTRECTはMFCで動作します。通常は、 'CTabCtrl :: AdjustRect'を呼び出して子ページをどこに置くべきかを知る必要があります。これは' TCM_ADJUSTRECT'メッセージを生成します。私はメッセージがWinFormで自動的に生成されるとは思わない。しかし、この解決法は複雑すぎるので、 'CTabCtrl :: AdjustRect'を呼び出すことを避ける方が簡単です。 –