PROPSHT.CPP
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:
Windows编程
开发平台:
Visual C++
- // 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);
- }