Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Построение выпуклой оболочки в режиме реального времени / Source / RingGenerate
.cpp// RingGenerate.cpp : implementation file
//
#include "stdafx.h"
#include "CHRealTime.h"
#include "RingGenerate.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CRingGenerate dialog
CRingGenerate::CRingGenerate(CWnd* pParent /*=NULL*/)
: CDialog(CRingGenerate::IDD, pParent)
{
//{{AFX_DATA_INIT(CRingGenerate)
m_tolsh = 10;
m_min = 20;
m_max = 120;
m_prir = 2;
m_poiints = 10;
//}}AFX_DATA_INIT
}
CRingGenerate::CRingGenerate(int m_iMinR,int m_iMaxR,int m_iWid,int m_iStep,int m_iNumPoints)
: CDialog(CRingGenerate::IDD, NULL)
{
//{{AFX_DATA_INIT(CRingGenerate)
m_tolsh = m_iWid;
m_min = m_iMinR;
m_max = m_iMaxR;
m_prir = m_iStep;
m_poiints = m_iNumPoints;
//}}AFX_DATA_INIT
}
void CRingGenerate::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRingGenerate)
DDX_Text(pDX, IDC_EDIT4, m_tolsh);
DDV_MinMaxInt(pDX, m_tolsh, 0, 100);
DDX_Text(pDX, IDC_EDIT2, m_min);
DDV_MinMaxInt(pDX, m_min, 20, 170);
DDX_Text(pDX, IDC_EDIT3, m_max);
DDV_MinMaxInt(pDX, m_max, 20, 170);
DDX_Text(pDX, IDC_EDIT5, m_prir);
DDV_MinMaxInt(pDX, m_prir, 1, 10);
DDX_Text(pDX, IDC_EDIT6, m_poiints);
DDV_MinMaxInt(pDX, m_poiints, 1, 200);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CRingGenerate, CDialog)
//{{AFX_MSG_MAP(CRingGenerate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRingGenerate message handlers
BOOL CRingGenerate::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CEdit *ed=(CEdit*)this->GetDlgItem(IDC_EDIT2);
CSpinButtonCtrl *sp=(CSpinButtonCtrl*)this->GetDlgItem(IDC_SPIN1);
sp->SetBuddy(ed);
// ed->SetWindowText("20");
sp->SetRange(20,170);
CEdit *ed1=(CEdit*)this->GetDlgItem(IDC_EDIT3);
CSpinButtonCtrl *sp1=(CSpinButtonCtrl*)this->GetDlgItem(IDC_SPIN2);
sp1->SetBuddy(ed1);
// ed1->SetWindowText("120");
sp1->SetRange(20,170);
CEdit *ed2=(CEdit*)this->GetDlgItem(IDC_EDIT4);
CSpinButtonCtrl *sp2=(CSpinButtonCtrl*)this->GetDlgItem(IDC_SPIN3);
sp2->SetBuddy(ed2);
// ed2->SetWindowText("10");
sp2->SetRange(0,100);
CEdit *ed3=(CEdit*)this->GetDlgItem(IDC_EDIT5);
CSpinButtonCtrl *sp3=(CSpinButtonCtrl*)this->GetDlgItem(IDC_SPIN4);
sp3->SetBuddy(ed3);
// ed3->SetWindowText("2");
sp3->SetRange(1,10);
CEdit *ed4=(CEdit*)this->GetDlgItem(IDC_EDIT6);
CSpinButtonCtrl *sp4=(CSpinButtonCtrl*)this->GetDlgItem(IDC_SPIN5);
sp4->SetBuddy(ed4);
// ed4->SetWindowText("10");
sp4->SetRange(1,200);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CRingGenerate::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void CRingGenerate::OnOK()
{
// TODO: Add extra validation here
CEdit *ed=(CEdit*)this->GetDlgItem(IDC_EDIT2);
CString str;
ed->GetWindowText(str);
int min = atoi(str);
CEdit *ed1=(CEdit*)this->GetDlgItem(IDC_EDIT3);
ed1->GetWindowText(str);
int max = atoi(str);
CEdit *ed2=(CEdit*)this->GetDlgItem(IDC_EDIT6);
ed2->GetWindowText(str);
int num = atoi(str);
if (min > max)
{
AfxMessageBox("Значение минимального внешнего радиуса\n не должно превышать значение максимального!");
return;
}
if (num > /*max-min+30*/200)
{
char buf[300];
sprintf(buf,"Слишком много точек.\nВведите значение от 1 до 200!"/*,max-min+30*/);
AfxMessageBox(buf);
return;
}
CDialog::OnOK();
}
Соседние файлы в папке Source