156 lines
4.0 KiB
C++
156 lines
4.0 KiB
C++
// TestDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "BackgroundPainter.h"
|
|
#include "TestDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTestDlg dialog
|
|
|
|
|
|
CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CTestDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CTestDlg)
|
|
m_nAlign = Tile;
|
|
m_sFilename = _T("");
|
|
//}}AFX_DATA_INIT
|
|
m_clrBack=::GetSysColor(COLOR_BTNFACE);
|
|
}
|
|
|
|
|
|
void CTestDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CTestDlg)
|
|
DDX_Control(pDX, IDC_FILENAME, m_cmbFilename);
|
|
DDX_Control(pDX, IDC_BACKCLR, m_btnBackColor);
|
|
DDX_Control(pDX, IDC_SEPARATOR, m_ctlSeparator);
|
|
DDX_Radio(pDX, IDC_ALIGN_TILE, m_nAlign);
|
|
DDX_CBString(pDX, IDC_FILENAME, m_sFilename);
|
|
//}}AFX_DATA_MAP
|
|
DDX_ColorPicker(pDX, IDC_BACKCLR, m_clrBack);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CTestDlg)
|
|
ON_BN_CLICKED(IDC_ALIGN_BOTTOMCENTER, OnAlign)
|
|
ON_BN_CLICKED(IDC_BACKCLR, OnBackclr)
|
|
ON_CBN_SELCHANGE(IDC_FILENAME, OnSelchangeFilename)
|
|
ON_CBN_EDITCHANGE(IDC_FILENAME, OnEditchangeFilename)
|
|
ON_BN_CLICKED(IDC_ALIGN_BOTTOMLEFT, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_BOTTOMRIGHT, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_CENTER, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_CENTERLEFT, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_CENTERRIGHT, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_STRETCH, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_TILE, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_TOPCENTER, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_TOPLEFT, OnAlign)
|
|
ON_BN_CLICKED(IDC_ALIGN_TOPRIGHT, OnAlign)
|
|
ON_WM_PALETTECHANGED()
|
|
ON_WM_QUERYNEWPALETTE()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CTestDlg message handlers
|
|
|
|
BOOL CTestDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
|
|
m_cmbFilename.SetAutoPersistent(_T("ImageFileName"));
|
|
for(int nIndex=4; nIndex<OX_HISTORY_COMBO_MAX_TOOLBUTTONS; nIndex++)
|
|
{
|
|
m_cmbFilename.ShowButton(nIndex,FALSE);
|
|
}
|
|
CToolBar* pToolbar=m_cmbFilename.GetToolBar();
|
|
pToolbar->ModifyStyle(NULL,TBSTYLE_FLAT);
|
|
m_cmbFilename.RefreshToolbar();
|
|
|
|
m_btnBackColor.SetToolTip(TRUE);
|
|
m_btnBackColor.SetDefaultColor(m_clrBack);
|
|
|
|
CWnd* pCtrl=GetDlgItem(IDC_IMAGE);
|
|
ASSERT(pCtrl!=NULL);
|
|
|
|
CRect rect;
|
|
pCtrl->GetWindowRect(rect);
|
|
pCtrl->DestroyWindow();
|
|
ScreenToClient(rect);
|
|
m_pictureWnd.Create(NULL,NULL,WS_CHILD|WS_VISIBLE,rect,this,IDC_IMAGE);
|
|
m_backPainterOrganizer.Attach(&m_pictureWnd,m_sFilename,(PaintType)m_nAlign);
|
|
m_pictureWnd.ModifyStyleEx(NULL,WS_EX_CLIENTEDGE,SWP_DRAWFRAME);
|
|
|
|
m_pictureWnd.RedrawWindow();
|
|
|
|
UpdateData(FALSE);
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
|
|
void CTestDlg::OnAlign()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
UpdateData(TRUE);
|
|
m_backPainterOrganizer.SetPaintType(&m_pictureWnd,(PaintType)m_nAlign);
|
|
}
|
|
|
|
void CTestDlg::OnBackclr()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
UpdateData(TRUE);
|
|
m_backPainterOrganizer.SetBkColor(&m_pictureWnd,m_clrBack);
|
|
}
|
|
|
|
void CTestDlg::OnSelchangeFilename()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
if(m_cmbFilename.GetCurSel()!=CB_ERR)
|
|
{
|
|
m_cmbFilename.GetLBText(m_cmbFilename.GetCurSel(),m_sFilename);
|
|
m_backPainterOrganizer.SetWallpaper(&m_pictureWnd,m_sFilename);
|
|
}
|
|
}
|
|
|
|
|
|
void CTestDlg::OnEditchangeFilename()
|
|
{
|
|
// TODO: Add your control notification handler code here
|
|
|
|
UpdateData(TRUE);
|
|
m_backPainterOrganizer.SetWallpaper(&m_pictureWnd,m_sFilename);
|
|
}
|
|
|
|
void CTestDlg::OnPaletteChanged(CWnd* pFocusWnd)
|
|
{
|
|
CDialog::OnPaletteChanged(pFocusWnd);
|
|
|
|
// TODO: Add your message handler code here
|
|
SendMessageToDescendants(WM_PALETTECHANGED,(WPARAM)((HWND)*pFocusWnd),NULL);
|
|
}
|
|
|
|
BOOL CTestDlg::OnQueryNewPalette()
|
|
{
|
|
// TODO: Add your message handler code here and/or call default
|
|
|
|
SendMessageToDescendants(WM_QUERYNEWPALETTE,NULL,NULL);
|
|
return CDialog::OnQueryNewPalette();
|
|
}
|