Download source files - 2 Kb
<!-- Article Starts -->
There are times you may
need to change your dialog or control background. It can be easy if you are using
CPictureWindow class. This class uses one of the ATL classes,
This does not means that the
CPictureWindow class cannot be used in MFC applications.
All that you need to do is insert two new lines in your stdafx.h:
#include < atlbase.h > ;
extern CComModule _Module;
The class is used by subclassing another window. So if you want to change the background
of one of your dialogs or a control, all that you need is to add a new member of
in the object, and then subclass the object with your new member.
For instance, if you want to set the background image in a dialog, you would add a member variable
m_PictureWindow to your dialog, and in the
OnInitDialog call the
where m_hWnd is the window handle of the dialog.
If you want to handle the EraseBackGround message in the dialog you have to call
m_PictureWindow.nMessageHandler = CPictureWindow::BackGroundPaint.
After you do this you have to call the Load function of the CPictureWindow class. In this way your
background of the dialog will display an image.
m_PictureWindow.SubclassWindow( m_hWnd );
m_PictureWindow.m_nMessageHandler = CPictureWindow::BackGroundPaint;
Also, If you have one control child of one dialog (window) and you need to add a background
picture all that you need to do is:
m_PictureWindow.SubclassWindow( ::GetDlgItem( m_hWnd, IDC_STATIC1 ) );
m_PictureWindow.m_nMessageHandler = CPictureWindow::ClientPaint;