◀ANSI版開発トップへ
  • 3731 タブモードでの「重ねて表示」
    • 3738 Re: タブモードでの「重ねて表示」
      • 3739 Re2: タブモードでの「重ねて表示」
        • 3741 Re3: タブモードでの「重ねて表示」
          • 3742 Re4: タブモードでの「重ねて表示」
  • [3731] タブモードでの「重ねて表示」 げんた 2004年08月30日 22:11

    kazikaさんの変更を確認していて気付いたのですが,まとめないタブ表示の場合に「重ねて表示」のZ-orderが正しくならず,ウィンドウが奥に隠れてしまうことがあります.

    タブがない場合と何が違うんでしょうか.
    • [3738] Re: タブモードでの「重ねて表示」 げんた 2004年09月04日 14:44

      >タブがない場合と何が違うんでしょうか.
      Tab WindowにOrder指令が行くと場合によってフレームウィンドウの制御をしているようなんですが,そのあたり関係している可能性はありませんか?

      デバッガで追ってみたところ,SetWindowPos()の結果が期待通りでないことはわかりましたが,なぜそうなるのかは相変わらずよくわかりません.

      誰か助けて~.
      • [3739] Re2: タブモードでの「重ねて表示」 Kazika 2004年09月06日 11:22

        重ねて表示する際に、ウィンドウが隠れているのが原因かもしれ
        ません。

        CEditView_Command.cpp の以下の関数
         CEditView::Command_CASCADE
         CEditView::Command_TILE_H
         CEditView::Command_TILE_V
        の先頭で、タブウィンドウをまとめない設定に変更する処理
         //タブウィンドウをまとめない設定に変更
         m_pShareData->m_Common.m_bDispTabWndMultiWin = TRUE;
        がありますが、これを
         //タブウィンドウをまとめない設定に変更
         Command_BIND_WINDOW();
        に修正すればよいかもしれません。応急処置としてはこの修正で
        いけると思います。

        ただ、Command_BIND_WINDOW関数ではタブモードの変更をSendでは
        なくPostしていますので、タイミングによってはうまくいかない可
        能性があります。
        CShareData::SendMessageToAllEditors関数を作るなど、タブモー
        ド変更に伴う処理の終了をまってから、重ねて表示などの各処理
        を行なうようにする必要があるかも知れません。
        • [3741] Re3: タブモードでの「重ねて表示」 げんた 2004年09月07日 00:50

          >重ねて表示する際に、ウィンドウが隠れているのが原因かもしれ
          >ません。
          現状でも,最大化されたウィンドウを最大化状態のまま重ねて表示してしまうという問題点があったので,並べ替える前にすべてShowWindowのSW_RESTOREで元に戻してからSetWindowPosを実行しているのですが相変わらず駄目なのです.
          • [3742] Re4: タブモードでの「重ねて表示」 Kazika 2004年09月07日 23:01

            >>重ねて表示する際に、ウィンドウが隠れているのが原因かもしれ
            >>ません。
            >現状でも,最大化されたウィンドウを最大化状態のまま重ねて表
            >示してしまうという問題点があったので,並べ替える前にすべて
            >ShowWindowのSW_RESTOREで元に戻してからSetWindowPosを実行し
            >ているのですが相変わらず駄目なのです.
            私のほうでも試してみましたがダメでした。
            SetWindowPosのNOACTIVATEをはずして逆順で試したりもしてみた
            のですが、何故かうまくいきませんね。
            もう少し時間のあるときにじっくり調べてみます。