www.pudn.com > 4533566799.rar > AdjustFractal.cpp
//贵州省安顺市第二高级中学 高二一班 蒋伟
//2002.7.1
//请勿修改版权信息 谢谢
//Neil
//
// AdjustFractal.cpp : implementation file
//
#include "stdafx.h"
#include "Fractal.h"
#include "AdjustFractal.h"
#include "mainfrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAdjustFractal dialog
CAdjustFractal::CAdjustFractal(CWnd* pParent /*=NULL*/)
: CDialog(CAdjustFractal::IDD, pParent)
{
//{{AFX_DATA_INIT(CAdjustFractal)
m_iBranchLength = 0;
m_iBranchNum = 0;
m_dblCutRate = 0.0;
m_iLastBranchLength = 0;
m_iLeftAngle = 0;
m_iLineWidth = 0;
m_iRightAngle = 0;
m_bDrawPixel = FALSE;
//}}AFX_DATA_INIT
m_AdjustMsg = RegisterWindowMessage(MY_ADJUST_MSG);
}
void CAdjustFractal::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdjustFractal)
DDX_Control(pDX, IDC_COLOR, m_btnColor);
DDX_Text(pDX, IDC_EDIT_BRANCH_LENGTH, m_iBranchLength);
DDV_MinMaxUInt(pDX, m_iBranchLength, 1, 1000);
DDX_Text(pDX, IDC_EDIT_BRANCH_NUM, m_iBranchNum);
DDV_MinMaxUInt(pDX, m_iBranchNum, 1, 1000);
DDX_Text(pDX, IDC_EDIT_CUT_RATE, m_dblCutRate);
DDV_MinMaxDouble(pDX, m_dblCutRate, 0., 1.);
DDX_Text(pDX, IDC_EDIT_LAST_BRANCH_LENGTH, m_iLastBranchLength);
DDV_MinMaxUInt(pDX, m_iLastBranchLength, 1, 100);
DDX_Text(pDX, IDC_EDIT_LEFT_ANGLE, m_iLeftAngle);
DDV_MinMaxInt(pDX, m_iLeftAngle, 0, 360);
DDX_Text(pDX, IDC_EDIT_LINE_WIDTH, m_iLineWidth);
DDV_MinMaxUInt(pDX, m_iLineWidth, 1, 10);
DDX_Text(pDX, IDC_EDIT_RIGHT_ANGLE, m_iRightAngle);
DDV_MinMaxInt(pDX, m_iRightAngle, 0, 360);
DDX_Check(pDX, IDC_CHECK_DRAW_PIXEL, m_bDrawPixel);
//}}AFX_DATA_MAP
if(pDX->m_bSaveAndValidate)
m_Color=m_btnColor.GetColor();
else
m_btnColor.SetColor(m_Color);
}
BEGIN_MESSAGE_MAP(CAdjustFractal, CDialog)
ON_WM_QUERYNEWPALETTE()
ON_WM_PALETTECHANGED()
ON_WM_CREATE()
//{{AFX_MSG_MAP(CAdjustFractal)
ON_BN_CLICKED(ID_APPLY_NOW, OnApplyNow)
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAdjustFractal message handlers
void CAdjustFractal::OnApplyNow()
{
if(UpdateData())
{
::PostMessage(((CMainFrame*)AfxGetMainWnd())->GetActiveView()->m_hWnd,m_AdjustMsg,ML_APPLY,0);
}
}
void CAdjustFractal::OnLButtonDown(UINT nFlags, CPoint point)
{
CDialog::OnLButtonDown(nFlags, point);
SendMessage(WM_NCLBUTTONDOWN,HTCAPTION,0);
}
BOOL CAdjustFractal::OnQueryNewPalette()
{
// CG: This function was added by the Palette Support component
if (m_pPalette == NULL)
return FALSE;
// BLOCK
{
CClientDC dc(this);
CPalette* pOldPalette = dc.SelectPalette(m_pPalette,
GetCurrentMessage()->message == WM_PALETTECHANGED);
UINT nChanged = dc.RealizePalette();
dc.SelectPalette(pOldPalette, TRUE);
if (nChanged == 0)
return FALSE;
}
Invalidate();
return TRUE;
}
void CAdjustFractal::OnPaletteChanged(CWnd* pFocusWnd)
{
// CG: This function was added by the Palette Support component
if (pFocusWnd == this || IsChild(pFocusWnd))
return;
OnQueryNewPalette();
}
CPalette* CAdjustFractal::SetPalette(CPalette* pPalette)
{
// CG: This function was added by the Palette Support component
// Call this function when the palette changes. It will
// realize the palette in the foreground to cause the screen
// to repaint correctly. All calls to CDC::SelectPalette in
// painting code should select palettes in the background.
CPalette* pOldPalette = m_pPalette;
m_pPalette = pPalette;
OnQueryNewPalette();
return pOldPalette;
}
int CAdjustFractal::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
m_pPalette = NULL;
return 0;
}