📄 setupdlg.cpp
字号:
// SetupDlg.cpp : implementation file
//
#include "stdafx.h"
#include "BWChess.h"
#include "SetupDlg.h"
#include "HelperAPI.h"
#include "Globalvar.h"
//#include "HowToDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//“初始化”对话框
CSetupDlg::CSetupDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSetupDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetupDlg)
m_PlayMode = g_nRunMode;
m_WhoFirst = (int)(!g_bUserBlack);
m_Skill = g_nSkill-1;
m_TimeNum = g_nTimeLimit/60;
//}}AFX_DATA_INIT
m_DyShow=0;
}
void CSetupDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetupDlg)
DDX_Control(pDX, IDC_TIMENUM, m_TimeNumC);
DDX_Control(pDX, IDC_SPINNUM, m_Spin);
DDX_Control(pDX, IDC_NONEEDTIME, m_NoNeedLimit);
DDX_Control(pDX, IDCANCEL, m_Cancel);
DDX_Control(pDX, IDOK, m_OK);
DDX_Radio(pDX, IDC_RADIO_WITHCOMPUTER, m_PlayMode);
DDX_Radio(pDX, IDC_RADIO_YOU_FIRST, m_WhoFirst);
DDX_Radio(pDX, IDC_SKILL1, m_Skill);
DDX_Text(pDX, IDC_TIMENUM, m_TimeNum);
DDV_MinMaxInt(pDX, m_TimeNum, 1, 150);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetupDlg, CDialog)
//{{AFX_MSG_MAP(CSetupDlg)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_RADIO_2PLAYER, OnRadio2player)
ON_BN_CLICKED(IDC_RADIO_WITHCOMPUTER, OnRadioWithcomputer)
ON_BN_CLICKED(IDC_RADIO_NETWORK, OnRadioNet)
ON_BN_CLICKED(IDC_NONEEDTIME, OnNoneedtime)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetupDlg message handlers
BOOL CSetupDlg::OnInitDialog()
{
CDialog::OnInitDialog();
HICON hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
SetIcon(hIcon, TRUE); // Set big icon
SetIcon(hIcon, FALSE); // Set small icon
CenterWindow();
m_OK.SetIcon ( IDI_OPEN );
m_OK.AddToolTip ( _T("确定") );
m_OK.SetBtnCursor(IDC_HAND);
m_OK.SetActiveFgColor(RGB(0,0,255));
m_Cancel.SetIcon ( IDI_CANCEL );
m_Cancel.AddToolTip ( _T("取消") );
m_Cancel.SetBtnCursor(IDC_HAND);
m_Cancel.SetActiveFgColor(RGB(0,0,255));
m_Spin.SetBuddy(&m_TimeNumC);
m_Spin.SetRange(1,150);
m_Spin.SetPos(m_TimeNum);
UpdateData(FALSE);
m_NoNeedLimit.SetCheck(g_nIsNoTimeLimit);//是否设定时间,初态
if(m_NoNeedLimit.GetCheck())//选定了“不限时”
{
GetDlgItem(IDC_TIMENUM)->EnableWindow(FALSE);
GetDlgItem(IDC_SPINNUM)->EnableWindow(FALSE);
}
EnableCtrl(!IsDlgButtonChecked(IDC_RADIO_2PLAYER)&&!IsDlgButtonChecked(IDC_RADIO_NETWORK));
//快接键
return TRUE;
}
void CSetupDlg::OnPaint()
{
CPaintDC dc(this);
if(!m_DyShow)
{
m_DyShow++;
DynamicShow(this,1);
}
}
void CSetupDlg::OnRadio2player() //两人模式
{
((CButton*)GetDlgItem(IDC_RADIO_WITHCOMPUTER))->SetCheck(BST_UNCHECKED);
((CButton*)GetDlgItem(IDC_RADIO_NETWORK))->SetCheck(BST_UNCHECKED);
EnableCtrl(!IsDlgButtonChecked(IDC_RADIO_2PLAYER));
OnNoneedtime();//限时有效
g_nRunMode =1;
}
void CSetupDlg::OnRadioWithcomputer()
{
((CButton*)GetDlgItem(IDC_RADIO_NETWORK))->SetCheck(BST_UNCHECKED);
((CButton*)GetDlgItem(IDC_RADIO_2PLAYER))->SetCheck(BST_UNCHECKED);
EnableCtrl(IsDlgButtonChecked(IDC_RADIO_WITHCOMPUTER));
g_nRunMode =0;
}
void CSetupDlg::OnRadioNet()
{
((CButton*)GetDlgItem(IDC_RADIO_WITHCOMPUTER))->SetCheck(BST_UNCHECKED);
((CButton*)GetDlgItem(IDC_RADIO_2PLAYER))->SetCheck(BST_UNCHECKED);
GetDlgItem(IDC_NONEEDTIME)->EnableWindow(0);
GetDlgItem(IDC_TIMENUM)->EnableWindow(0);
GetDlgItem(IDC_SPINNUM)->EnableWindow(0);
GetDlgItem(IDC_RADIO_YOU_FIRST)->EnableWindow(0);
GetDlgItem(IDC_RADIO_COMPUTER_FIRST)->EnableWindow(0);
GetDlgItem(IDC_SKILL1)->EnableWindow(0);
GetDlgItem(IDC_SKILL2)->EnableWindow(0);
GetDlgItem(IDC_SKILL3)->EnableWindow(0);
g_nRunMode =2;
}
void CSetupDlg::OnCancel()
{
DynamicShow(this,0);
CDialog::OnCancel();
}
void CSetupDlg::OnOK()
{
UpdateData();
g_bUserBlack=!m_WhoFirst;
g_nSkill=m_Skill+1;
g_nTimeLimit= m_TimeNum * 60;
g_nIsNoTimeLimit=m_NoNeedLimit.GetCheck();
DynamicShow(this,0);
CDialog::OnOK();
}
void CSetupDlg::OnNoneedtime() //限时有效
{
BOOL flag=IsDlgButtonChecked(IDC_NONEEDTIME);
GetDlgItem(IDC_TIMENUM)->EnableWindow(!flag);
GetDlgItem(IDC_SPINNUM)->EnableWindow(!flag);
}
void CSetupDlg::EnableCtrl(BOOL flag)//设置谁有效
{
GetDlgItem(IDC_NONEEDTIME)->EnableWindow(!flag);
GetDlgItem(IDC_TIMENUM)->EnableWindow(!flag);
GetDlgItem(IDC_SPINNUM)->EnableWindow(!flag);
GetDlgItem(IDC_RADIO_YOU_FIRST)->EnableWindow(flag);
GetDlgItem(IDC_RADIO_COMPUTER_FIRST)->EnableWindow(flag);
GetDlgItem(IDC_SKILL1)->EnableWindow(flag);
GetDlgItem(IDC_SKILL2)->EnableWindow(flag);
GetDlgItem(IDC_SKILL3)->EnableWindow(flag);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -