Here is the source code of the CExtTabPageContainerWnd::GetSafeTabWindow()
method in Prof-UIS 2.87 (just released):
CExtTabWnd * CExtTabPageContainerWnd::GetSafeTabWindow()
{
ASSERT_VALID( this );
VERIFY( _CreateHelper() );
if( m_pWndTab == NULL )
return NULL;
ASSERT_VALID( m_pWndTab );
if( m_pWndTab->GetSafeHwnd() == NULL )
return NULL;
return m_pWndTab;
}
As you can see, it invokes the
VERIFY( _CreateHelper() );
code before any other actions. The
CExtTabPageContainerWnd::_CreateHelper()
method instantiates and create the tab window inside the tab page container:
bool CExtTabPageContainerWnd::_CreateHelper()
{
ASSERT_VALID( this );
if( GetSafeHwnd() == NULL )
return false;
if( m_pWndTab == NULL )
m_pWndTab = OnTabWndGetTabImpl();
ASSERT_VALID( m_pWndTab );
if( m_pWndTab != NULL
&& m_pWndTab->m_hWnd == NULL
)
{
if( ! m_pWndTab->Create(
this,
CRect( 0, 0, 0, 0 ),
0x100,
WS_CHILD|WS_VISIBLE, //|WS_TABSTOP,
__ETWS_ORIENT_BOTTOM,
NULL
)
)
return false;
_RepositionBarsImpl();
HookSpyRegister( __EHSEF_KEYBOARD );
}
return true;
}
Please note, all the other methods of the
CExtTabPageContainerWnd
class are invoking the
CExtTabPageContainerWnd::GetSafeTabWindow()
method at the beginning. Here is the example:
bool CExtTabPageContainerWnd::EnabledBtnHelpGet() const
{
ASSERT_VALID( this );
if( GetSafeTabWindow() == NULL )
return false;
return (m_pWndTab->GetTabWndStyle() & __ETWS_ENABLED_BTN_HELP) ? true : false;
}
This means, the tab page container control in the released Prof-UIS 2.87 works like it did in previous Prof-UIS versions.
If you have different source code of the
CExtTabPageContainerWnd::GetSafeTabWindow()
and
CExtTabPageContainerWnd::_CreateHelper()
methods, then please update to just released version 2.87.