[3852]
RE: 不具合>消えるタブ
みく
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;