A resizable TabControl

A few notes about CXPropertyPage (A class derived from CDialog).

This window class is contained by one CXPropertySheet. The text of item from CXPropertySheet will have the text for the resource string with the same identifier as the dialog. The CXPropertyPage has one m_bAutoSize member with the following property: if this is set, the first child of the property page is resized when the property page is resized. It is useful when you have in the property sheet one window control. The value of this member can be changed by operator =.

How to use these

The first is to add all sources files (X*.h, X*.cpp) into your project, and copy from the demo project the IDR_XTABCTRL accelerator.

Using CXPropertySheet.

Create a few dialogs in the resource designer with the popup style removed. Add from class wizard a new class for each new dialog. Into the source files of these dialogs, change the "CDialog" string to "CXPropertyPage" (both header and source). Now you have for each dialog one class CXPropertyPage. Declare as member one CXPropertySheet. Call at initializing time the
  Create(TCXS_UP | TCXS_DOWN] | WS_CHILD | WS_VISIBLE, CRect(0,0,100,100), pParentWnd, nID);
  
function. The next step is adding pages into this class. So, call
  AddPage(new CXPropertyPage1, hIcon, lParam), 
    
where:
   CXPropertyPage1 is the name of one of the dialogs generated by the class wizard,
   hIcon is the icon which you want to be displayed on item,
   lParam is user data.

The last two parameter are optionals. The easiest way to show how all these work, please see OnInitDialog from demo project.

Download demo project - 68 KB

Download source - 12 KB



Comments

  • You Will Love Jordan Sneakers and like the Expertise

    Posted by BotsictastHom on 05/01/2013 09:37pm

    Hi there! I know this is kinda off topic nevertheless I'd figured I'd ask. Would you be interested in exchanging links or maybe guest authoring a blog article or vice-versa? My site covers a lot of the same topics as yours and I feel we could greatly benefit from each other. If you might be interested feel free to send me an e-mail. I look forward to hearing from you! Great blog by the way! [url=http://news.onfitnessmagazine.info/story.php?title=cheap-lebron-shoes]cheap lebron 9[/url]|

    Reply
  • Tree View Implementation?

    Posted by Legacy on 08/22/1999 12:00am

    Originally posted by: Jean-Claude Demosthenidy

    Have you implemented your control for multiple treeviews like in Dev Studio? If you have, please share your thoughts (and code if you have some)
    Thanks!

    Reply
  • Drawing tabs and text with the system colors

    Posted by Legacy on 02/23/1999 12:00am

    Originally posted by: Dan Anderson

    The only problem that I found with the source that you have furnished, is that the tabs used fixed colors for
    the background and the text.
    
    Below is a simple remedy to the problem, which I have implemented in XTabCtrl.cpp:

    Replaced:
    static CPen _penG(PS_SOLID, 1, RGB(128,128,128));
    With:
    static CPen cpBackground(PS_SOLID, 1, (OLE_COLOR)GetSysColor(COLOR_BTNFACE));

    Replaced:
    static CPen _penGG(PS_SOLID, 1, RGB(192,192,192));
    With:
    static CPen cpShade(PS_SOLID, 1, (OLE_COLOR)GetSysColor(COLOR_BTNSHADOW));

    Replaced:
    static CPen _penW(PS_SOLID, 1, RGB(255,255,255));
    With:
    static CPen cpWindowColor(PS_SOLID, 1, (OLE_COLOR)GetSysColor(COLOR_WINDOW));

    Replaced:
    static CPen _penB(PS_SOLID, 1, RGB(0,0,0));
    With:
    static CPen cpLetterForeColor(PS_SOLID, 1, (OLE_COLOR)GetSysColor(COLOR_BTNTEXT));

    Reply
  • Use!?

    Posted by Legacy on 02/17/1999 12:00am

    Originally posted by: Eugen Paval

    You may want looking at
    www.codeguru.com/advancedui/cdxCDynamicControls.shtml
    www.codeguru.com/dialog/Geometry.shtml
    for complete implementations of the concept.

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Today's agile organizations pose operations teams with a tremendous challenge: to deploy new releases to production immediately after development and testing is completed. To ensure that applications are deployed successfully, an automatic and transparent process is required. We refer to this process as Zero Touch Deployment™. This white paper reviews two approaches to Zero Touch Deployment--a script-based solution and a release automation platform. The article discusses how each can solve the key …

  • On-demand Event Event Date: December 18, 2014 The Internet of Things (IoT) incorporates physical devices into business processes using predictive analytics. While it relies heavily on existing Internet technologies, it differs by including physical devices, specialized protocols, physical analytics, and a unique partner network. To capture the real business value of IoT, the industry must move beyond customized projects to general patterns and platforms. Check out this webcast and join industry experts as …

Most Popular Programming Stories

More for Developers

RSS Feeds