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 » CExtTabMdiOneNoteWnd is bug report. Collapse All
Subject Author Date
tera t Mar 30, 2008 - 8:21 PM

Hello.


CExtTabMdiOneNoteWnd is bug report.

The indication point of the tab becomes strange when I perform NewFile in succession.


void CMainFrame::OnFileNew()

{

 int iRec;

 for ( iRec = 0 ; iRec < 5 ; iRec++ ){

  CDocManager * pDocManager;

  pDocManager = AfxGetApp()->m_pDocManager;

  pDocManager->OnFileNew();

 }

}


http://www.yukai.jp/~ifreeta/20080331/DRAWCLI.LZH

Technical Support Mar 31, 2008 - 8:13 AM

Our MDI tab control does not control the order of MDI child frames. It displays tab items in the same order as the order of MDI child frame windows order inside the MDI client area window. So, your code simply affects the MDI client area window behavior and, as a result, tab items become inserted in a different order.

The CExtTMWI::_SyncAllItems() virtual method performs synchronization of MDI tab control with MDI interface. You can override this method and initialize all the tab items in your preferred order.

tera t Mar 31, 2008 - 6:23 PM

Hello.


When I want to open a childframe continually.

Should I remodel _SyncAllItems?

Technical Support Apr 1, 2008 - 4:31 AM

The _SyncAllItems() method simply removes the tab items which correspond to the destroyed MDI child frames and creates tab items for new MDI child frames.

Your _SyncAllItems() method should be similar to the original one, but it should invoke the ItemInsert() method with different parameters for inserting new tab items at desired locations.

tera t Mar 30, 2008 - 8:31 PM

But when I add the following order.




void CMainFrame::OnFileNew()

{

 int iRec;

 for ( iRec = 0 ; iRec < 5 ; iRec++ ){

  CDocManager * pDocManager;

  pDocManager = AfxGetApp()->m_pDocManager;

  pDocManager->OnFileNew();


     MSG msg;

     while (::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))

     {

         if (!GetMessage(&msg, NULL, 0, 0)){

          break;

         }

         TranslateMessage(&msg);

         DispatchMessage(&msg);

     }

 }


}


First of all?

It is displayed definitely.