1

私はMFCが初めてです。ウィザードを使用して SDI アプリケーションを作成し、生成されたコードを変更して、各ビュー、ツールバー、またはメニューのレイアウトを制御しようとしました。

...
m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC)
...
DockPane(&m_wndToolBar); // m_wndToolBar is a tool bar
...
DockPane(&m_wndFileView);
m_wndClassView.AttachToTabWnd(&m_wndFileView, DM_SHOW, TRUE, &pTabbedBar);
DockPane(&m_wndOutput);
// w_wndFileView, m_wndClassView, m_wndOutput are some views.
...

しかし、それはうまくいかないようです: ウィンドウは常に、ユーザーが最後に操作したことを覚えているかのように動作します。たとえば、コードの最後の 3 行は、次のような 3 つのビューを作成します。

ここに画像の説明を入力

コードを実行して閉じ、次のように変更しました。

DockPane(&m_wndFileView);
DockPane(&m_wndOutput);
m_wndClassView.AttachToTabWnd(&m_wndOutput, DM_SHOW, TRUE, &pTabbedBar);

次のように表示されるはずですが、失敗したと思います (このスクリーンショットは実行結果ではありません。手動でレイアウトを変更しました)。

ここに画像の説明を入力

閉じたときに前回のレイアウトを保持します(写真1のように)。さらに、ユーザーが手動でレイアウトを変更したことを記憶することができます。なぜ?誰がそうしろと言った?

4

1 に答える 1