◀一般トップへ
  • 3841 不具合>消えるタブ
    • 3852 RE: 不具合>消えるタブ
  • [3841] 不具合>消えるタブ 無人駅 2004年05月14日 02:50

    幻が発生しました。

    発生VER
      v1.4.5.0 Win98 or Win2000 Pro
      v1.4.6.0 Win2000 Pro

    以前、報告していた現象と同じと思いますが、発生方法がわかりましたので追加報告します。

    1.スクロールしないと表示されないタブが3ページ以上出来るぐらいファイルをたくさん読込みます。
    2.最終ページに表示されている全てのタブを右クリック 閉じるで消します。
      (最後に読込んだファイルから順番に閉じる)

    これで、タブが透明になって、タブのある領域をクリックすると、クリックした位置のタブのみ表示されるようになります。
    タブのスクロールボタンをクリックすると正常に戻ります。

    閉じたとき、タブの表示位置の計算に誤りがあるのでは?と思っています。
    • [3852] RE: 不具合>消えるタブ みく 2004年05月22日 18:08


      CTabWnd.cpp:272行目(WS_CLIPSIBLINGS追加)
      //タブウインドウを作成する。
      m_hwndTab = ::CreateWindow(
      WC_TABCONTROL,
      _T(""),
      ! WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,


      フォーカスのあるタブを削除すんなってことらしい。

      CTabWnd.cpp:517行目あたりから。
      case TWNT_DEL: //ウインドウ削除
      nIndex = FindTabIndexByHWND( (HWND)lParam );
      if( -1 != nIndex )
      {
      ! //TabCtrl_DeleteItem( m_hwndTab, nIndex );
      + int nIndexOld = nIndex;

      //次のウインドウが自分ならアクティブに
      nIndex = GetFirstOpenedWindow();
      if( -1 != nIndex )
      {
      + //削除するアイテムからフォーカスをはずす
      + TabCtrl_SetCurSel( m_hwndTab, nIndex );
      + TabCtrl_SetCurFocus( m_hwndTab, nIndex );
      + //TabCtrl_HighlightItem( m_hwndTab, nIndex, TRUE );

      if( m_pShareData->m_pEditArr[ nIndex ].m_hWnd == m_hwndParent )
      {
      if( //TRUE == m_pShareData->m_Common.m_bDispTabWnd //2004.02.02
      //&& FALSE == m_pShareData->m_Common.m_bDispTabWndMultiWin
      /*&&*/ FALSE == ::IsWindowVisible( m_hwndParent ) )
      {
      ShowHideWindow( m_hwndParent, TRUE );
      ForceActiveWindow( m_hwndParent );
      }
      }
      }
      + TabCtrl_DeleteItem( m_hwndTab, nIndexOld );
      }
      break;