MFC:ツールバーの位置・状態を LoadBarState / SaveBarState 関数でまともに保存・読み込みを行う


MFCプログラムで、ツールバーの状態を LoadBarState / SaveBarState 関数にて記録・復元を行うときに、ツールバーが複数個ある場合に、デフォルトのコードではまともに動作しない。(ツールバーの位置が入れ替わったり、復元後におかしな位置になったり、、、)
これを解決するには、ツールバーの CreateEx の第5引数に、コントロールのIDを指定する必要がある。


    if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
        | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(0,0,0,0), IDR_MAINFRAME) ||
        !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
    {
        TRACE0("ツール バーの作成に失敗しました。\n");
        return -1; // 作成できませんでした。
    }

    if (!m_wndToolBar2.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
        | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(0,0,0,0), IDR_TOOLBAR2) ||
        !m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2))
    {
        TRACE0("ツール バーの作成に失敗しました。\n");
        return -1; // 作成できませんでした。
    }

[PR]
by isoq | 2009-01-27 12:31 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇
<< Gyaoでナショナルジオグラフ... 【VAIO type P】 こ... >>