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 » Tabbing between controls Collapse All
Subject Author Date
Eddie Judson Oct 27, 2005 - 7:55 AM

Support,


 I have a quite a few property pages inheriting from CExtResizablePropertyPage, I use them in a wizard or display them seperatly via DoModal().  When the property pages are in wizard mode I can tab between the controls on them fine, however when I create one that is not in a CExtResizablePropertySheet and display it via DoModal() I can not tab between the controls.  Could you tell me what I am doing wrong?  Also which event do I override in the CExtResizablePropertySheet so that I can ShowSizeGrip(false).


    Regards,


        Eddie

Technical Support Oct 27, 2005 - 1:09 PM

Please use the CExtResizablePropertySheet-derived class and override the OnInitDialog() virtual method. This method should invoke the parent method and hide the sizing gripper. We need to clarify your first question. The property pages are based on CPropertyPage (or CExtResizablePropertyPage) class and the dialog template resource which is the child dialog. The modal dialogs are based on CDialog (or CExtResizableDialog) class and the dialog template resource which is a pop-up dialog. You cannot use the same dialog resource and the same C++ class in both cases.


Eddie Judson Oct 27, 2005 - 7:39 PM

I am trying to get around the fact that the CExtResizablePropertySheet is not compatiable with the office 2003 theme.  I have a property page that I need to display in a wizard with other property pages(which is fine) and singularly (with ok and cancel).    When this property page is displayed singularly on a property sheet a  tab is displayed which is not compatiable with the office 2003 theme.  To try and get around this I added an ok and cancel button to the property page and hide them when in wizard mode, didn’t use a property sheet and called domodal directly on the property page.  Everything seemed to look fine but I was unable to tab between controls. 


The reason for this using the property page in a wizard and singularly is I dont want to duplicate the code once in a property sheet class and once in a dialog class. So (to cut a long story short) will the CExtResizablePropertySheet ever be compatiable with the office 2003 theme when not in wizard mode? Or do I have to duplicate the code?  I hope I have made it a little bit clearer, sorry if it is worse :)


Regards,


   Eddie

Technical Support Oct 31, 2005 - 1:30 PM

Unfortunately CExtResizablePropertySheet tabs do not support the paint manager styles. In this case, we would suggest you to use the CExtTabPageContainerWnd class instead of CExtResizablePropertySheet. It implements a tab control container window that is always painted according to the currently applied theme. Besides the Flat, Whidbey or One Note tab styles are available and can be used.

Eddie Judson Oct 27, 2005 - 8:03 PM

Ok,


 Back again, I have figured out how to display it sigularly, using a combination of setwizardbuttons and setfinishtext.  So could you just tell me if CExtResizablePropertySheet will ever be compatiable with the office 2003 theme when not in wizard mode?


  

Technical Support Oct 28, 2005 - 2:30 PM

The CExtResizablePropertySheet class uses the standard tab common control and was designed for the theme Office 2000. We would suggest you to use a dialog window with CExtTabPageContainerWnd inside ( or CExtTabPageContainerFlatWnd, CExtTabPageContainerOneNoteWnd, CExtTabPageContainerWhidbeyWnd). The CExtTabPageContainerWnd class implements a container for several windows and uses the Prof-UIS tab window for switching the active window in the container.

As for using one dialog class inside the property sheet and as a modal dialog, tt is not possible. But you could do the following:

1) create a dialog template resource of the child type and a C++ class for it;
2) create the property page class which will use your child dialog as a single window inside the property page; the property page should stretch the child dialog area to its client area;
3) create a modal dialog (modal dialog template resource and its C++ class) and use your child dialog inside it like in the property page.