home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
msdn_vcb
/
samples
/
vc98
/
mfc
/
general
/
propdlg
/
propsht.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1998-03-26
|
3KB
|
98 lines
// propsht.cpp : implementation of the CModalShapePropSheet class
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1998 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include "stdafx.h"
#include "propdlg.h"
#include "resource.h"
#include "shapeobj.h"
#include "colorpge.h"
#include "stylepge.h"
#include "preview.h"
#include "propsht.h"
IMPLEMENT_DYNAMIC(CModalShapePropSheet, CPropertySheet)
BEGIN_MESSAGE_MAP(CModalShapePropSheet, CPropertySheet)
//{{AFX_MSG_MAP(CModalShapePropSheet)
ON_COMMAND(ID_APPLY_NOW, OnApplyNow)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
CModalShapePropSheet::CModalShapePropSheet(CWnd* pWndParent)
: CPropertySheet(AFX_IDS_APP_TITLE, pWndParent)
{
AddPage(&m_stylePage);
AddPage(&m_colorPage);
}
BOOL CModalShapePropSheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
// add the preview window to the property sheet.
CRect rectWnd;
GetWindowRect(rectWnd);
SetWindowPos(NULL, 0, 0,
rectWnd.Width() + 100,
rectWnd.Height(),
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
CRect rectPreview(rectWnd.Width() + 25, 25,
rectWnd.Width()+75, 75);
m_wndPreview.Create(NULL, NULL, WS_CHILD|WS_VISIBLE,
rectPreview, this, 0x1000);
CenterWindow();
return bResult;
}
void CModalShapePropSheet::SetSheetPropsFromShape(CShape* pShape)
{
m_stylePage.m_nShapeStyle = pShape->m_shapestyle;
m_stylePage.SetModified(FALSE);
m_colorPage.m_nColor = pShape->m_shapecolor;
m_colorPage.SetModified(FALSE);
// Reflect the new shape properties in the controls of the
// currently active property page.
GetActivePage()->UpdateData(FALSE);
UpdateShapePreview();
}
void CModalShapePropSheet::SetShapePropsFromSheet(CShape* pShape)
{
pShape->m_shapecolor = m_colorPage.m_nColor;
pShape->m_shapestyle = (SHAPE_STYLE)m_stylePage.m_nShapeStyle;
m_colorPage.SetModified(FALSE);
m_stylePage.SetModified(FALSE);
}
void CModalShapePropSheet::UpdateShapePreview()
{
m_wndPreview.Invalidate();
m_wndPreview.UpdateWindow();
}
void CModalShapePropSheet::OnApplyNow()
{
Default();
CFrameWnd* pFrameWnd = STATIC_DOWNCAST(CFrameWnd, AfxGetMainWnd());
CView* pView = pFrameWnd->GetActiveFrame()->GetActiveView();
pView->SendMessage(WM_USER_CHANGE_OBJECT_PROPERTIES, 0, 0);
m_stylePage.SetModified(FALSE);
m_colorPage.SetModified(FALSE);
SendMessage(PSM_CANCELTOCLOSE);
}