📄 settingdlg.cpp
字号:
// SettingDlg.cpp : implementation file
//
#include "stdafx.h"
#include "sort.h"
#include "SettingDlg.h"
#include "sortwnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSettingDlg dialog
CSettingDlg::CSettingDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSettingDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSettingDlg)
m_SortType = 0;
m_BubbleSort = TRUE;
m_SelectionSort = TRUE;
m_InsertSort = TRUE;
m_QuickSort = TRUE;
m_MergeSort = TRUE;
m_HeapSort = TRUE;
m_ShellSort = TRUE;
m_RadixSort = FALSE;
m_SleepTime = 1;
m_FreshTime = 50;
m_NumData = 600;
m_DataWidth =250;
m_Per_SC = 60;
m_parent=pParent;
m_HaveSleep = TRUE;
//}}AFX_DATA_INIT
Create(CSettingDlg::IDD,pParent);
}
void CSettingDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSettingDlg)
DDX_Radio(pDX, IDC_RADIO1, m_SortType);
DDX_Check(pDX, IDC_CHECK1, m_BubbleSort);
DDX_Check(pDX, IDC_CHECK2, m_SelectionSort);
DDX_Check(pDX, IDC_CHECK3, m_InsertSort);
DDX_Check(pDX, IDC_CHECK4, m_QuickSort);
DDX_Check(pDX, IDC_CHECK5, m_MergeSort);
DDX_Check(pDX, IDC_CHECK6, m_HeapSort);
DDX_Check(pDX, IDC_CHECK8, m_ShellSort);
DDX_Check(pDX, IDC_CHECK7, m_RadixSort);
DDX_Text(pDX, IDC_EDIT1, m_SleepTime);
DDV_MinMaxInt(pDX, m_SleepTime, 0, 1000);
DDX_Text(pDX, IDC_EDIT2, m_FreshTime);
DDV_MinMaxInt(pDX, m_FreshTime, 1, 3000);
DDX_Text(pDX, IDC_EDIT3, m_NumData);
DDV_MinMaxInt(pDX, m_NumData, 1, 500000000);
DDX_Text(pDX, IDC_EDIT4, m_DataWidth);
DDV_MinMaxInt(pDX, m_DataWidth, 1, 100000);
DDX_Text(pDX, IDC_EDIT5, m_Per_SC);
DDV_MinMaxInt(pDX, m_Per_SC, 0, 100);
DDX_Check(pDX, IDC_CHECK9, m_HaveSleep);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSettingDlg, CDialog)
//{{AFX_MSG_MAP(CSettingDlg)
ON_BN_CLICKED(IDAPPLY, OnApply)
ON_BN_CLICKED(IDC_CHECK9, OnCheck9)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSettingDlg message handlers
void CSettingDlg::OnOK()
{
OnApply();
CDialog::OnOK();
}
void CSettingDlg::OnCancel()
{
// TODO: Add extra cleanup here
CDialog::OnCancel();
}
void CSettingDlg::OnApply()
{
SortWnd * p=(SortWnd*)m_parent;
// TODO: Add your control notification handler code here
BOOL b=UpdateData();
if (b)
{
p->DataWidth=m_DataWidth;
p->Num_Data=m_NumData;
p->SleepTime=m_SleepTime;
p->HZ=m_FreshTime;
p->Per_SC=m_Per_SC;
if (!p->sort[0]&&m_BubbleSort) {p->sort[0]=new CBubbleSort();p->Num_Sort++;}
else if (p->sort[0]&&!m_BubbleSort) {p->Num_Sort--;CSort* temp=p->sort[0];p->sort[0]=NULL;delete temp;}
if (!p->sort[1]&&m_SelectionSort) {p->sort[1]=new CSelectionSort();p->Num_Sort++;}
else if (p->sort[1]&&!m_SelectionSort) {p->Num_Sort--;CSort* temp=p->sort[1];p->sort[1]=NULL;delete temp;}
if (!p->sort[2]&&m_InsertSort) {p->sort[2]=new CInsertSort();p->Num_Sort++;}
else if (p->sort[2]&&!m_InsertSort) {p->Num_Sort--;CSort* temp=p->sort[2];p->sort[2]=NULL;delete temp;}
if (!p->sort[3]&&m_QuickSort) {p->sort[3]=new CQuickSort();p->Num_Sort++;}
else if (p->sort[3]&&!m_QuickSort) {p->Num_Sort--;CSort* temp=p->sort[3];p->sort[3]=NULL;delete temp;}
if (!p->sort[7]&&m_ShellSort) {p->sort[7]=new CShellSort();p->Num_Sort++;}
else if (p->sort[7]&&!m_ShellSort) {p->Num_Sort--;CSort* temp=p->sort[7];p->sort[7]=NULL;delete temp;}
if (!p->sort[4]&&m_MergeSort) {p->sort[4]=new CMergeSort();p->Num_Sort++;}
else if (p->sort[4]&&!m_MergeSort) {p->Num_Sort--;CSort* temp=p->sort[4];p->sort[4]=NULL;delete temp;}
if (!p->sort[5]&&m_HeapSort) {p->sort[5]=new CHeapSort();p->Num_Sort++;}
else if (p->sort[5]&&!m_HeapSort) {p->Num_Sort--;CSort* temp=p->sort[5];p->sort[5]=NULL;delete temp;}
// if (!p->sort[0]&&m_BubbleSort) {p->sort[0]=new CBubbleSort();p->Num_Sort++;}
// else if (p->sort[0]&&!m_BubbleSort) {p->Num_Sort--;CSort* temp=p->sort[0];p->sort[0]=NULL;delete temp;}
// if (!p->sort[0]&&m_BubbleSort) {p->sort[0]=new CBubbleSort();p->Num_Sort++;}
// else if (p->sort[0]&&!m_BubbleSort) {p->Num_Sort--;CSort* temp=p->sort[0];p->sort[0]=NULL;delete temp;}
p->DeleteThread();
for (int i=0;i<MAX;i++)
if (p->sort[i])
{
p->sort[i]->EnableSleep(m_HaveSleep);
p->sort[i]->IsASC=!m_SortType;
}
if (m_SortType)
{
p->ASCButton->SetWindowText("降序化");
p->DSCButton->SetWindowText("升序化");
}
else
{
p->ASCButton->SetWindowText("升序化");
p->DSCButton->SetWindowText("降序化");
}
p->Set();
p->RandData();
p->DrawFull();
}
}
void CSettingDlg::OnCheck9()
{
UpdateData();
this->GetDlgItem(IDC_EDIT1)->EnableWindow(m_HaveSleep);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -