Placing A Bitmap In The PropertySheet Button Area

I was recently asked to write an application for a company that wanted their logo on every single window in the program. As the application grew there became less and less space for a company bitmap logo within some of the tabbed-dialog boxes. Due to this I decided to see if I could place the bitmap logo in the PropertySheet area that is normally only used by the the OK, Cancel and Apply buttons. The picture below shows what I achived...

To do this is quite easy.

1. Firstly create a subclass of CPropertySheet called CMyPropertySheet.

2. Override the WM_PAINT message by creating an OnPaint() member function for CMyPropertySheet, and paste the follwing code into it.

CBitmap bmp, *poldbmp;
CDC memdc;
CRect rect;
//Load the bitmap resource 

//Create a compatible memory DC

//Select the bitmap into the DC
poldbmp = memdc.SelectObject(&bmp);//bmp

//Get size of PropertySheet

//Copy (BitBlt) bitmap from memory DC to screen DC
dc.BitBlt(left, rect.bottom - lower, w, h, &memdc, 0, 0, SRCCOPY);


The dc.BitBlt places a w pixel wide by h pixel high image left pixels away from the left hand edge, and lower pixels away from the bottom of the PropertySheet. Change these values as you see fit.

3. #include "MyPropertSheet.h" in the calling dialog that you wish to use the new property page in.

4. Add PropertyPages to the PropertySheet and call it, e.g.....

    CMyPropertySheet sheet("Personnel Details");
CPerFildlg perfildlgPage;
CAddDetdlg adddetdlgPage;
CDelDetdlg deldetdlgPage;



More advanced code for drawing bitmaps / DIBs which also uses palettes may be found on this site.

Download source - 1KB

Date Posted: 05/04/98


  • Overriding the OK and Cancel Buttons

    Posted by Legacy on 11/02/2000 12:00am

    Originally posted by: David Ishmael

    Is there a way to remove the focus of the OK and Cancel buttons?

  • Any way to put the bitmap on the default buttons?

    Posted by Legacy on 04/25/2000 12:00am

    Originally posted by: K Parthasarathy


    Is there any way to put the bitmap images to the default buttons like OK , Next , Cancel and others given by the propertysheet

  • Any way to put the Bitmap in the main Property Page area?

    Posted by Legacy on 11/24/1999 12:00am

    Originally posted by: Chris Fasulo

    I am looking for a way to put Bitmaps in the main area of the Property Page background. So that the bitmap image is the background for the property page.

  • CListCtrl::GetHeaderCtrl()

    Posted by Legacy on 05/14/1999 12:00am

    Originally posted by: Sam Hobbs

    CListCtrl::GetHeaderCtrl() seems to be new for VC6. I cannot find it in VC5 documentation or MFC source browser dtat, but I find it in the VC6 documentation in MSDN. Has anyone looked to see if it uses one of the techniques dexcribed here?

  • Little modification

    Posted by Legacy on 12/03/1998 12:00am

    Originally posted by: Catalin Hatmanu

    The line :
    dc.BitBlt(left, rect.bottom - lower, w, h, &memdc, 0, 0, SRCCOPY);
    can be replaced with:
    dc.BitBlt(left, rect.bottom - h - lower, w, h, &memdc, 0, 0, SRCCOPY);

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

Top White Papers and Webcasts

  • Essential Insights for Successful Cloud Migration and Management Whether you're planning your cloud migration strategy or already in the cloud, making accurate cloud decisions requires a deep analytical approach. This paper discusses the main objectives to achieve, top questions to ask, and the analytics you need at each stage of your cloud journey. You'll learn: How to identify which cloud provider will provide the best cost and performance benefits for your organization How to determine which applications …

  • The open source cloud computing project OpenStack has come a long way since NASA and Rackspace launched it in 2010. Backed by leading technology infrastructure providers including Cisco, Dell, EMC, HP, IBM, Intel, and VMware, OpenStack underpins significant workloads at an increasingly diverse set of organizations, including BWM, CERN, Comcast, eBay, and Wal-Mart. For CIOs engaged in broader programs to win, serve, and retain customers -- and refocus business technology (BT) spend -- a planned and pragmatic …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date