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 » When I add 300 dialog to CExtTabPageContainerFlatWnd Collapse All
Subject Author Date
tera tera Dec 24, 2008 - 6:17 PM

Hello.


When I add 300 dialog to CExtTabPageContainerFlatWnd.

Drawing of UI becomes abnormally slow.

Please teach good improvement plan.



I sent a sample program by an email.


 

Technical Support Dec 26, 2008 - 2:09 PM

If you allocate 10000 GDI handles, Windows will start using the "System" proportional font everywhere. So, you should not allocated 10000 GDI handles. Approximately the same we can say about allocating 300 tab pages. Besides, keeping 300 items in the single line tab control is not a a user friendly design. This design should be replaced with something else. For instance, you can use a list box inside tab control and created only one page window which corresponds to the selected list box item.

tera tera Dec 26, 2008 - 7:47 PM

Hello.


>This design should be replaced with something else.

>For instance, you can use a list box inside tab control and created only one page window which corresponds to the selected list box item.


In order that I simplify a story, I showed such an example.

Actually, it is used in the following examples.





I change only the display of the grid, Even suggestion of the substitute plan is good.

I want a sample.

Technical Support Dec 29, 2008 - 8:32 AM

You are using too many tabs. If you do not trust our point of view, then please read what Microsoft recommends for people who creates too much tabs:

http://msdn.microsoft.com/en-us/library/aa511493.aspx

Here is the part of the Windows User Experience Interaction Guidelines document (http://msdn.microsoft.com/en-us/library/aa511258.aspx) referred above:

- Use horizontal tabs if:
* The window has seven or fewer tabs.
* All the tabs fit on one row, even when the user interface (UI) is localized.
- Use vertical tabs if:
* The property window has eight or more tabs.
* Using horizontal tabs would require more than one row.
- Don’t nest tabs or combine horizontal tabs with vertical tabs. Instead, reduce the number of tabs, use only vertical tabs, or use another control such as a drop-down list.
- Don’t scroll horizontal tabs. Horizontal scrolling isn’t readily discoverable. You may scroll vertical tabs, however.
- For tabs on a resizable window or pane, put a scrollbar, when needed, on the page, not the window or pane. The tabs should always be visible and not scroll out of view.
- Make sure the tabs look like tabs and not another type of control.
- Don’t use product logos for tab graphics. Tabs aren’t for branding.


tera tera Dec 26, 2008 - 7:28 PM

Hello.


>If you allocate 10000 GDI handles, Windows will start using the "System" proportional font everywhere.


Will the reason why CPU processing becomes slow be that Windows uses a lot of proportional font?

I made 300 dialogues without using CExtTab.

The CPU processing does not seem to become slow.


CExtTab uses CPU time in large quantities?


 

Technical Support Dec 29, 2008 - 8:31 AM

The handle count is the problem. You created 300 dialogs which have 300 HWND handles. If each dialog has at least 3 child windows, the total count of handles will be 1200. This is too many.

tera tera Jan 4, 2009 - 6:37 PM

Hello.


I make plural tabs , Can it be always called only one CWnd?


Technical Support Jan 6, 2009 - 12:23 PM

Yes.

tera tera Jan 6, 2009 - 4:47 PM

Hello.


I ask for a sample code.


Thanks,

Technical Support Jan 8, 2009 - 10:14 AM

Please provide us with more details about the test project you need. Should it be dialog-based or frame-based? Where dynamically created tab pages should appear in it?

tera tera Jan 8, 2009 - 5:10 PM

Hello.


>Should it be dialog-based or frame-based?

 dialog-based


>Where dynamically created tab pages should appear in it?

 It is a tab sticking to custom control.


Thanks,


 

Technical Support Jan 9, 2009 - 8:37 AM

Here is the test project:

http://www.prof-uis.com/download/forums/TestDynamicTabPageContainer.zip

We created a new CExtDynamicTabPageContainerWnd class for you. We tried to make it very similar to Prof-UIS tab page container windows. But it does not keep page windows for all the tab items. The CExtDynamicTabPageContainerWnd::OnCreatePageWindow() virtual method is invoked for creating page window for selected tab item. The page window of previously selected tab item is destroyed automatically.

tera tera Jan 14, 2009 - 1:57 AM

 


Hello.


Thank veryˆ2 much.  

tera tera Dec 30, 2008 - 12:06 AM

Hello.


Make only a multiplex tab, Will it be possible for one CWnd( CExtGrid ) to be displayed?

I want a sample. 


Thank you

Technical Support Dec 31, 2008 - 2:57 AM

You can create a CExtGridWnd window as a child of any other window. What do you mean by the multiplex tab window in your question?

tera tera Dec 24, 2008 - 7:40 PM

Hello.


The MFC program does not use the CPU processing time in large quantities even if I make 300 dialog (grid) by a normal MFC program.

I am troubled.  

Please teach a good method.