📄 topbuttondlg.cpp
字号:
// TopButtonDlg.cpp : implementation file
//
#include "stdafx.h"
#include "AlgorithmicDesign.h"
#include "TopButtonDlg.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "PackGreedyDataSetDlg.h"
#include "PackGreedyHelpDlg.h"
#include "InputGraphPrimDlg.h"
#include "MainTreeGreadyHelpDlg.h"
#include "PackDynamicDlg.h"
/////////////////////////////////////////////////////////////////////////////
// CTopButtonDlg dialog
CTopButtonDlg::CTopButtonDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTopButtonDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTopButtonDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CTopButtonDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTopButtonDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTopButtonDlg, CDialog)
//{{AFX_MSG_MAP(CTopButtonDlg)
ON_BN_CLICKED(ID_DATA, OnData)
ON_BN_CLICKED(ID_EXECUTE, OnExecute)
ON_BN_CLICKED(ID_STOP, OnStop)
ON_BN_CLICKED(ID_PAUSE, OnPause)
ON_BN_CLICKED(ID_ODD, OnOdd)
ON_BN_CLICKED(ID_INTRODUCE, OnIntroduce)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTopButtonDlg message handlers
BOOL CTopButtonDlg::Create( CWnd* pParentWnd )
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::Create(IDD, pParentWnd);
}
void CTopButtonDlg::OnOK() //退出
{
// TODO: Add extra validation here
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
pMainFrame->ShowPackGreedyFrame(FALSE,-1);
// CDialog::OnOK();
}
void CTopButtonDlg::OnData() //设置数据
{
// TODO: Add your control notification handler code here
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
DWORD RoomData=pMainFrame->m_selectnumber;
switch (RoomData)
{
case 0:
{
CPackGreedyDataSetDlg m_PackGreedyDataSetDlg;
int nResponse=m_PackGreedyDataSetDlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
CWnd* pWnd;
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_DATA);
pWnd->EnableWindow(FALSE);
flag=0;
}
else if (nResponse == IDCANCEL)
{
}
break;
}
case 1:
{
CInputGraphPrimDlg m_InputGraphPrimDlg;
int nResponse=m_InputGraphPrimDlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
CWnd* pWnd;
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_DATA);
pWnd->EnableWindow(FALSE);
flag=0;
}
else if (nResponse == IDCANCEL)
{
}
break;
}
case 2:
{
CPackGreedyDataSetDlg m_PackGreedyDataSetDlg;
int nResponse=m_PackGreedyDataSetDlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
CWnd* pWnd;
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_DATA);
pWnd->EnableWindow(FALSE);
flag=0;
}
else if (nResponse == IDCANCEL)
{
}
break;
}
case 4:
{
CPackGreedyDataSetDlg m_PackGreedyDataSetDlg;
int nResponse=m_PackGreedyDataSetDlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
CWnd* pWnd;
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_DATA);
pWnd->EnableWindow(FALSE);
flag=0;
}
else if (nResponse == IDCANCEL)
{
}
break;
}
default:
break;
}
}
void CTopButtonDlg::OnExecute() //执行
{
// TODO: Add your control notification handler code here
CWnd* pWnd;
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_STOP);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_PAUSE);
pWnd->EnableWindow(TRUE);
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
//pMainFrame->pPackgreedyFrame->p_DemolistView->OnExecute();
DWORD RoomData=pMainFrame->m_selectnumber;
switch (RoomData)
{
case 0:
{
pMainFrame->pPackgreedyFrame->p_AlgorithmiclistView->OnExecute();
break;
}
case 1:
{
if(flag==0)
{
pMainFrame->pMintreegreedyFrame->p_AlgorithmiclistView->OnExecute();
flag=1;
}
else
pMainFrame->pMintreegreedyFrame->p_AlgorithmiclistView->OnContinue();
break;
}
case 4:
{
pMainFrame->pPackDynamicFrame->p_AlgorithmiclistView->OnExecute();
break;
}
default:
break;
}
}
BOOL CTopButtonDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_DataButton.SubclassDlgItem (ID_DATA, this);
m_DataButton.SetIcon (IDI_DATA);
m_DataButton.SetActiveBgColor( RGB(198, 211, 238));
m_IntroduceButton.SubclassDlgItem (ID_INTRODUCE, this);
m_IntroduceButton.SetIcon (IDI_INTRODUCE);
m_IntroduceButton.SetActiveBgColor( RGB(198, 211, 238));
m_PauseButton.SubclassDlgItem (ID_PAUSE, this);
m_PauseButton.SetIcon (IDI_PAUSE);
m_PauseButton.SetActiveBgColor( RGB(198, 211, 238));
m_ExecuteButton.SubclassDlgItem (ID_EXECUTE, this);
m_ExecuteButton.SetIcon (IDI_EXECUTE);
m_ExecuteButton.SetActiveBgColor( RGB(198, 211, 238));
m_OddButton.SubclassDlgItem (ID_ODD, this);
m_OddButton.SetIcon (IDI_ODD);
m_OddButton.SetActiveBgColor( RGB(198, 211, 238));
m_OutButton.SubclassDlgItem (IDOK, this);
m_OutButton.SetIcon (IDI_OK);
m_OutButton.SetActiveBgColor( RGB(198, 211, 238));
m_StopButton.SubclassDlgItem (ID_STOP, this);
m_StopButton.SetIcon (IDI_STOP);
m_StopButton.SetActiveBgColor( RGB(198, 211, 238));
CWnd* pWnd;
pWnd = GetDlgItem(ID_PAUSE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_STOP);
pWnd->EnableWindow(FALSE);
flag=0;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTopButtonDlg::OnStop()
{
// TODO: Add your control notification handler code here
CWnd* pWnd;
pWnd = GetDlgItem(ID_PAUSE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_STOP);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_DATA);
pWnd->EnableWindow(TRUE);
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
DWORD RoomData=pMainFrame->m_selectnumber;
switch (RoomData)
{
case 0:
{
pMainFrame->pPackgreedyFrame->p_AlgorithmiclistView->OnStop();
break;
}
case 1:
{
pMainFrame->pMintreegreedyFrame->p_AlgorithmiclistView->OnStop();
break;
}
case 4:
{
pMainFrame->pPackDynamicFrame->p_AlgorithmiclistView->OnStop();
break;
}
default:
break;
}
}
void CTopButtonDlg::OnPause()
{
// TODO: Add your control notification handler code here
CWnd* pWnd;
pWnd = GetDlgItem(ID_PAUSE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_STOP);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_DATA);
pWnd->EnableWindow(FALSE);
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
DWORD RoomData=pMainFrame->m_selectnumber;
switch (RoomData)
{
case 0:
{
pMainFrame->pPackgreedyFrame->p_AlgorithmiclistView->OnStop();
break;
}
case 1:
{
pMainFrame->pMintreegreedyFrame->p_AlgorithmiclistView->OnStop();
break;
}
case 4:
{
pMainFrame->pPackDynamicFrame->p_AlgorithmiclistView->OnStop();
break;
}
default:
break;
}
}
void CTopButtonDlg::OnOdd()
{
// TODO: Add your control notification handler code here
CWnd* pWnd;
pWnd = GetDlgItem(ID_EXECUTE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_ODD);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_STOP);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(ID_PAUSE);
pWnd->EnableWindow(TRUE);
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
DWORD RoomData=pMainFrame->m_selectnumber;
switch (RoomData)
{
case 0:
{
pMainFrame->pPackgreedyFrame->p_AlgorithmiclistView->SetOdd();
break;
}
case 1:
{
pMainFrame->pMintreegreedyFrame->p_AlgorithmiclistView->OnOdd();
break;
}
case 4:
{
pMainFrame->pPackDynamicFrame->p_AlgorithmiclistView->SetOdd();
break;
}
default:
break;
}
}
void CTopButtonDlg::OnIntroduce()
{
// TODO: Add your control notification handler code here
CMainFrame* pMainFrame =(CMainFrame*)::AfxGetMainWnd();
DWORD RoomData=pMainFrame->m_selectnumber;
switch (RoomData)
{
case 0:
{
CPackGreedyHelpDlg m_dlg;
m_dlg.DoModal();
break;
}
case 1:
{
CMainTreeGreadyHelpDlg m_dlg;
m_dlg.DoModal();
break;
}
case 4:
{
CPackDynamicDlg m_dlg;
m_dlg.DoModal();
break;
}
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -