00001
00002
00003
00004 #include "stdafx.h"
00005 #include "MapEditor.h"
00006 #include "BrushLevelDialog.h"
00007
00008
00009
00010
00011 IMPLEMENT_DYNAMIC(CBrushLevelDialog, CDialog)
00012 CBrushLevelDialog::CBrushLevelDialog(CWnd* pParent )
00013 : CDialog(CBrushLevelDialog::IDD, pParent)
00014 {
00015 }
00016
00017 CBrushLevelDialog::~CBrushLevelDialog()
00018 {
00019 }
00020
00021 void CBrushLevelDialog::DoDataExchange(CDataExchange* pDX)
00022 {
00023 CDialog::DoDataExchange(pDX);
00024 DDX_Control(pDX, IDC_SPIN_SIZE, m_SpinSize);
00025 DDX_Control(pDX, IDC_RADIO_SHAPECIRCLE, m_CheckCircle);
00026 DDX_Control(pDX, IDC_RADIO_SHAPESQUARE, m_CheckSquare);
00027 }
00028
00029
00030 BEGIN_MESSAGE_MAP(CBrushLevelDialog, CDialog)
00031 ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN_SIZE, OnDeltaposSpinSize)
00032 ON_WM_PAINT()
00033 ON_BN_CLICKED(IDC_RADIO_SHAPECIRCLE, OnBnClickedRadioShapecircle)
00034 ON_BN_CLICKED(IDC_RADIO_SHAPESQUARE, OnBnClickedRadioShapesquare)
00035 ON_EN_CHANGE(IDC_EDIT_SIZE, OnEnChangeEditSize)
00036 ON_NOTIFY(NM_RELEASEDCAPTURE, IDC_SPIN_SIZE, OnNMReleasedcaptureSpinSize)
00037 END_MESSAGE_MAP()
00038
00039
00040
00041
00042 BOOL CBrushLevelDialog::OnInitDialog()
00043 {
00044 CDialog::OnInitDialog();
00045
00046 m_SpinSize.SetPos( 5 );
00047 m_SpinSize.SetRange32( 1, 100 );
00048 m_CheckSquare.SetCheck( BST_CHECKED );
00049 m_CheckSquare.EnableWindow( FALSE );
00050 m_CheckCircle.EnableWindow( FALSE );
00051
00052 return TRUE;
00053
00054 }
00055
00056 void CBrushLevelDialog::OnOK()
00057 {
00058
00059
00060
00061 }
00062
00063 void CBrushLevelDialog::OnCancel()
00064 {
00065
00066
00067 ShowWindow( SW_HIDE );
00068 }
00069
00070 void CBrushLevelDialog::OnDeltaposSpinSize(NMHDR *pNMHDR, LRESULT *pResult)
00071 {
00072 LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
00073
00074 *pResult = 0;
00075
00076 RedrawWindow();
00077 }
00078
00079 void CBrushLevelDialog::OnPaint()
00080 {
00081 CPaintDC dc(this);
00082
00083
00084
00085 CWnd* pWnd = GetDlgItem( IDC_FRAME_BRUSH );
00086 CRect FrameRect;
00087
00088 pWnd->GetClientRect( &FrameRect );
00089
00090 CRect FillRect;
00091 CBrush Brush( RGB( 20, 20, 20 ) );
00092 CPen Pen( PS_SOLID, 0, RGB( 20, 20, 20 ) );
00093 CDC* pDC = pWnd->GetDC();
00094
00095 FillRect.left = FrameRect.right / 2 - m_SpinSize.GetPos();
00096 FillRect.top = FrameRect.bottom / 2 - m_SpinSize.GetPos();
00097 FillRect.right = FrameRect.right / 2 + m_SpinSize.GetPos();
00098 FillRect.bottom = FrameRect.bottom / 2 + m_SpinSize.GetPos();
00099
00100 pDC->SelectObject( &Brush );
00101 pDC->SelectObject( &Pen );
00102
00103 if( m_CheckCircle.GetCheck() == BST_CHECKED )
00104 {
00105 pDC->Ellipse( FillRect );
00106 }
00107 else
00108 {
00109 pDC->FillRect( FillRect, &Brush );
00110 }
00111
00112 pWnd->ReleaseDC( pDC );
00113 }
00114
00115 void CBrushLevelDialog::OnBnClickedRadioShapecircle()
00116 {
00117 RedrawWindow();
00118 }
00119
00120 void CBrushLevelDialog::OnBnClickedRadioShapesquare()
00121 {
00122 RedrawWindow();
00123 }
00124
00125 void CBrushLevelDialog::OnEnChangeEditSize()
00126 {
00127
00128
00129
00130
00131
00132
00133 RedrawWindow();
00134 }
00135
00136 void CBrushLevelDialog::OnNMReleasedcaptureSpinSize(NMHDR *pNMHDR, LRESULT *pResult)
00137 {
00138
00139 *pResult = 0;
00140
00141 RedrawWindow();
00142 }