Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритм Киркпатрика-Зайделя / Source / Delete
.cpp// Delete.cpp : implementation file
//
#include "stdafx.h"
#include "CH_KS.h"
#include "Delete.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Delete dialog
Delete::Delete(CWnd* pParent /*=NULL*/)
: CDialog(Delete::IDD, pParent)
{
//{{AFX_DATA_INIT(Delete)
m_i = 1;
m_x = 0;
m_y = 0;
m_string = _T("1");
//}}AFX_DATA_INIT
}
void Delete::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Delete)
DDX_Control(pDX, IDC_N_SPIN, m_n_spin);
DDX_Text(pDX, IDC_X, m_x);
DDX_Text(pDX, IDC_Y, m_y);
DDX_Text(pDX, IDC_N, m_string);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Delete, CDialog)
//{{AFX_MSG_MAP(Delete)
ON_BN_CLICKED(IDDELETE, OnDelete)
ON_EN_CHANGE(IDC_N, OnChangeN)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Delete message handlers
BOOL Delete::OnInitDialog()
{
CDialog::OnInitDialog();
UpdateData(TRUE);
m_n_spin.SetBuddy(GetDlgItem(IDC_N));
m_n_spin.SetRange(1, p->N());
m_x = p->X(m_i-1);
m_y = p->Y(m_i-1);
UpdateData(FALSE);
GotoDlgCtrl(GetDlgItem(IDC_N));
return FALSE;
}
void Delete::OnDelete()
{
p->Delete(m_i-1);
if (m_i > p->N()) {
m_i--;
m_string.Format("%d", m_i);
}
m_n_spin.SetRange(1, p->N());
EndDialog(IDDELETE);
}
void Delete::OnChangeN()
{
UpdateData(TRUE);
m_string.Remove(0xA0);
m_i = atoi(m_string);
if (m_i > p->N()) {
m_i = p->N();
m_string.Format("%d", m_i);
}
else if (m_i < 1)
{
m_i = 1;
m_string.Format("%d", m_i);
}
m_x = p->X(m_i-1);
m_y = p->Y(m_i-1);
UpdateData(FALSE);
}
Соседние файлы в папке Source