◀Unicode版開発トップへ
  • 10 タブグループでのGrepで各種バーが消える
  • [10] タブグループでのGrepで各種バーが消える ryoji 2007年11月14日 23:09

    タブグループ化の設定で、
    ・新規タブが追加されるときウィンドウが非アクティブになる
    ・Grepで新規Grepタブが追加されるときツールバーなど各種バーが無い状態で表示される

    CEditWnd::Create()で、m_cHokanMgr.DoModeless()が実行されると、
    まだ何もウィンドウを表示していないのにCreateDialogParam APIの
    実行に伴ってWM_ACTIVATEAPPが発生するためと思われます。
    SetWindowLongでCEditWnd::DispatchEvent()を有効化するのは上記
    処理よりも後にしたほうが良さそうです。

    Index: sakura_core/CEditWnd.cpp
    ===================================================================
    --- sakura_core/CEditWnd.cpp (revision 1177)
    +++ sakura_core/CEditWnd.cpp (working copy)
    @@ -419,7 +419,6 @@
    HWND hWnd = _CreateMainWindow(nGroup, sTabGroupInfo);
    if(!hWnd)return NULL;
    m_hWnd = hWnd;
    - ::SetWindowLongPtr( GetHwnd(), GWLP_USERDATA, (LONG_PTR)this );

    //コモンコントロール初期化
    MyInitCommonControls();
    @@ -483,6 +482,10 @@


    // -- -- -- -- その他調整など -- -- -- -- //
    +
    + // 画面表示直前にDispatchEventを有効化する
    + ::SetWindowLongPtr( GetHwnd(), GWLP_USERDATA, (LONG_PTR)this );
    +
    // デスクトップからはみ出さないようにする
    _AdjustInMonitor(sTabGroupInfo);