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 General Discussion » CExtTabMdiWhidbeyWnd simply disapeared Collapse All
Subject Author Date
Svetlozar Kostadinov Mar 31, 2008 - 5:21 AM

Hello, I’m not sure exactly when, but the tab bar has disapeared without a trace. The object is created successfully, but somehow it doesn’t synchronize itself to the newly created MDI child wnds. Like there are none. Recently I made changes to the document views and tried to implement full screen support. Maybe I messed up something. Can you tell me, please, where to search for the mistake?

Regards, Sv.

Svetlozar Kostadinov Apr 1, 2008 - 11:45 AM

I’ve commented all the stuff related to full screen support and still nothing. In our project there are 2 document templates and MDI tab control doesn’t show itself for none of them. With the Spy++ tool I’ve seen 4 ProfUIS-TabWindow’s - 2 for the dynamic bars and 2 which are not visible and with zero size. Also I set breakpoint in CExtTabWnd::ItemInsert() and it returns successfully and the DoPaint() too. Please, help, this is mystery for me.

Technical Support Apr 1, 2008 - 12:58 PM

Could you create a stripped version of your project (with the UI part only) and send it to us?

Svetlozar Kostadinov Apr 1, 2008 - 3:41 PM

I am afraid that I couldn’t divide the UI cause the project is too large. I can send you the main frame class and the doc/view classes if you need.

Technical Support Apr 2, 2008 - 1:13 PM

Please try the following:

1) Copy your project into a new directory. In the ideal case, copy it to some other computer with clean Visual Studio settings to avoid dependency on any other libraries.
2) Remove everything in your project except the UI code. Leave main/child fame windows and document classes. Remove files of non-UI code, not only project items.
3) Make your project compile-able and debug-able.

Svetlozar Kostadinov Apr 3, 2008 - 8:56 AM

I’ve sent a stripped VS2008 project.

Technical Support Apr 9, 2008 - 12:38 PM

We are very sorry for the delay with this reply. You create the MDI tabs window using the following code:

      if( !m_wndMdiTabs.Create( this, CRect(0,0,0,0), UINT(), WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN|WS_CLIPSIBLINGS,
            __ETWS_MDI_DEFAULT|__ETWS_HIDE_ICONS|__ETWS_ITEM_DRAGGING|__ETWS_SHOW_BTN_CLOSE      ) )
      {
            ASSERT( FALSE );
            return -1;
      }
This MDI tabs will work correctly if you compile your project in Visual Studio 2005 or earlier version. The Visual Studio 2008 introduces a problem when the IDC_STATIC constant is used as a dialog identifier of non-re-dockable control bars like the status bar. If you replace the UINT(IDC_STATIC) with UINT(1) in the code above, the MDI tabs will work OK. We do not use IDC_STATIC in Prof-UIS anymore and a new __EXT_MFC_IDC_STATIC constant is now used instead.

Svetlozar Kostadinov Apr 10, 2008 - 3:51 AM

Please, don’t worry, the delay was not important. I confirm - when I set UINT(1) and it works. But what about the other problem, which I’ve described in the e-mail - the disappearing content of one of the dynamic bars? This problem is more important for me.

Regards!

Technical Support Apr 16, 2008 - 4:52 AM

What we can see is that you have three bars in your project. The Properties bar with a property grid control inside and the Log Panel bar with a read-only editor inside work OK. The Layers bar does not contain anything inside it regardless of whether it’s docked or floating. We found the following code in your project:

      // Layers view
      m_pLayersView = new CExtWRB< CBTLayersView >();
      m_pLayersView->Create( CBTLayersView::IDD, m_pLayersPanel );
and we inserted one line of code after it:
  m_pLayersView->ShowWindow( SW_SHOW );
Now the Layers bar is not empty.

Technical Support Mar 31, 2008 - 12:17 PM

We suspect you have implemented some message handlers in the MDI child frame and/or MDI main frame windows without invoking the parent class handler methods which affect the behavior of MDI tabs. Please try to comment out parts of your full screen implementation code to find out which of them affect MDI tabs.