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

  • On-demand Event Event Date: September 10, 2014 Modern mobile applications connect systems-of-engagement (mobile apps) with systems-of-record (traditional IT) to deliver new and innovative business value. But the lifecycle for development of mobile apps is also new and different. Emerging trends in mobile development call for faster delivery of incremental features, coupled with feedback from the users of the app "in the wild." This loop of continuous delivery and continuous feedback is how the best mobile …

  • Information is data with context. The era of Big Data has begun demonstrating to information security that there is more that can, and must, be done to identify threats, reduce risk, address fraud, and improve compliance monitoring activities by bringing better context to data and thereby creating information for actionable intelligence. This analyst report sets the stage and provides insights into IT and information security practitioners' perceptions of the impediments to, and the solutions necessary for, …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds