Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » CExtTabPageContainerWnd Collapse All
Subject Author Date
DAN MAZILU Aug 15, 2007 - 9:04 AM

PageVisibleSet method don’t hide the hwnd attached with the page when PageVisibleSet is invoked to hide the item(it is clear when you try to hide the selected tab page). I already sent a mail with a demo project....
Also, I have another problem - seems that a CTreeCtrl embedded in a CExtResizableDialog attached in CExtTabPageContainerWnd does not show the scroll bar..... I will send you a demo project...

DAN MAZILU Aug 21, 2007 - 7:37 AM

I sent the mail - thanks for help

Technical Support Aug 23, 2007 - 3:48 PM

Please find the following member of the CDlgDemoTreeCtrl class in your project:

      CExtWRB<CExtWFF< CTreeCtrl > > m_treeCtrl;
and replace it with
      CExtWFF < CTreeCtrl > m_treeCtrl;
You will also need to replace
CExtWRB<CExtWFF< CTreeCtrl > >& m_wndTree = m_treeCtrl;
code with the CTreeCtrl & m_wndTree = m_treeCtrl; code in the CDlgDemoTreeCtrl::OnInitDialog() method. The scroll bars will appear in the tree control after these modifications.

Please do not use the CExtWRB template class with the controls which have scroll bars. The CExtWRB template class re-computes and re-paints window non-client area making it looking like a thin 1 pixel border. But scroll bars of the tree control are not scroll bar windows. Thay are rather parts of the window non-client area and they are not based on HWND handles. So, the CExtWRB template class simply kills scroll bars.

The CExtWRB template class is designed for non-scrollable windows like CExtResizableDialog. When using CExtWRB with windows inside resizable control bars, the thin border looks like it is around many windows inside dockable panes in Visual Studio .NET and Visual Studio 2005. But the tree control already has a nice thin border.

DAN MAZILU Aug 21, 2007 - 2:26 AM

I already sent the mail with treectrl page on Wednesday, August 15, 2007, subject ’Fw: CExtTabPageContainerWnd’. If you don’t have this mail tell me and I will send again....

Technical Support Aug 21, 2007 - 7:00 AM

No, we did not receive it. Could you send it again? Please also make sure that the zipped project is small enough, i.e. it does not contain redundant files like with .ncb extension.

Technical Support Aug 17, 2007 - 1:07 PM

Thank you for reporting the problem. You can fix it by updating the source code of this method:

bool CExtTabPageContainerWnd::PageVisibleSet( 
      INT nItemIndex, 
      bool bVisible // = true 
      )
{
      ASSERT_VALID( this );
      CExtTabWnd::TAB_ITEM_INFO * pTII = 
            m_pWndTab->ItemGet( nItemIndex );
      ASSERT( pTII != NULL );
      ASSERT_VALID( pTII );
      if( PageSelectionGet() == nItemIndex )
            PageSelectionSet( -1 );
bool bRet = 
            pTII->VisibleSet( bVisible );
HWND hWnd = PageHwndGetSafe( nItemIndex );
      ASSERT( hWnd != NULL && ::IsWindow( hWnd ) );
      if( hWnd != NULL )
            ::ShowWindow( hWnd, SW_HIDE );
      if( PageSelectionGet() == nItemIndex )
            PageSelectionSet( -1 );
      _RepositionBarsImpl();
      return bRet;      
}
Could you insert a tree control into the test project you sent us to reproduce the problem with hidden scroll bars?