#include "Stdafx.h" #include "Resource.h" #include "DlgCustomRule.h" ////////////////////////////////////////////////////////////////////////////////// BEGIN_MESSAGE_MAP(CDlgCustomRule, CDialog) END_MESSAGE_MAP() ////////////////////////////////////////////////////////////////////////////////// //构造函数 CDlgCustomRule::CDlgCustomRule() : CDialog(IDD_CUSTOM_RULE) { //设置变量 ZeroMemory(&m_CustomRule,sizeof(m_CustomRule)); m_CustomRule.wTimeOut = 40; m_CustomRule.wSendCardTime = 10; m_CustomRule.wCompareCardTime = 20; m_CustomRule.lMinChipScore = 1; m_CustomRule.lMaxChipScore = 5; m_CustomRule.cbMaxPlayRound = 10; m_CustomRule.cbMinLookRound = 1; m_CustomRule.cbMinCompareRound = 2; m_CustomRule.cbMinCompareUser = 2; return; } //析构函数 CDlgCustomRule::~CDlgCustomRule() { } //配置函数 BOOL CDlgCustomRule::OnInitDialog() { __super::OnInitDialog(); //设置控件 ((CEdit *)GetDlgItem(IDC_EDIT_TIME_OUT))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_SEND_CARD_TIME))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_COMPARE_CARD_TIME))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_MAX_PLAY_ROUND))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_CHIP_SCORE))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_MAX_CHIP_SCORE))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_LOOK_CARD_ROUND))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_COMPARE_USER))->LimitText(3); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_COMPARE_ROUND))->LimitText(3); //更新参数 FillDataToControl(); return FALSE; } //确定函数 VOID CDlgCustomRule::OnOK() { //投递消息 GetParent()->PostMessage(WM_COMMAND,MAKELONG(IDOK,0),0); return; } //取消消息 VOID CDlgCustomRule::OnCancel() { //投递消息 GetParent()->PostMessage(WM_COMMAND,MAKELONG(IDCANCEL,0),0); return; } //更新控件 bool CDlgCustomRule::FillDataToControl() { //设置数据 SetDlgItemInt(IDC_EDIT_TIME_OUT, m_CustomRule.wTimeOut); SetDlgItemInt(IDC_EDIT_SEND_CARD_TIME, m_CustomRule.wSendCardTime); SetDlgItemInt(IDC_EDIT_COMPARE_CARD_TIME, m_CustomRule.wCompareCardTime); SetDlgItemInt(IDC_EDIT_MIN_CHIP_SCORE, m_CustomRule.lMinChipScore); SetDlgItemInt(IDC_EDIT_MAX_CHIP_SCORE, m_CustomRule.lMaxChipScore); SetDlgItemInt(IDC_EDIT_MAX_PLAY_ROUND, m_CustomRule.cbMaxPlayRound); SetDlgItemInt(IDC_EDIT_MIN_LOOK_CARD_ROUND, m_CustomRule.cbMinLookRound); SetDlgItemInt(IDC_EDIT_MIN_COMPARE_USER, m_CustomRule.cbMinCompareUser); SetDlgItemInt(IDC_EDIT_MIN_COMPARE_ROUND, m_CustomRule.cbMinCompareRound); return true; } //更新数据 bool CDlgCustomRule::FillControlToData() { //设置数据 m_CustomRule.wTimeOut = (WORD)GetDlgItemInt(IDC_EDIT_TIME_OUT); //数据校验 if (m_CustomRule.wTimeOut==0) { AfxMessageBox(TEXT("超时时间必须设置!"),MB_ICONSTOP); return false; } m_CustomRule.wSendCardTime = (WORD)GetDlgItemInt(IDC_EDIT_SEND_CARD_TIME); m_CustomRule.wCompareCardTime = (WORD)GetDlgItemInt(IDC_EDIT_COMPARE_CARD_TIME); m_CustomRule.lMinChipScore = (LONG)GetDlgItemInt(IDC_EDIT_MIN_CHIP_SCORE); //数据校验; if (m_CustomRule.lMinChipScore < 1) { AfxMessageBox(TEXT("最小可下注必须设置!"), MB_ICONSTOP); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_CHIP_SCORE))->SetFocus(); return false; } m_CustomRule.lMaxChipScore = (LONG)GetDlgItemInt(IDC_EDIT_MAX_CHIP_SCORE); //数据校验; if (m_CustomRule.lMaxChipScore < 1) { AfxMessageBox(TEXT("最大可下注必须设置!"), MB_ICONSTOP); ((CEdit *)GetDlgItem(IDC_EDIT_MAX_CHIP_SCORE))->SetFocus(); return false; } m_CustomRule.cbMaxPlayRound = (BYTE)GetDlgItemInt(IDC_EDIT_MAX_PLAY_ROUND); //数据校验; if (m_CustomRule.cbMaxPlayRound < 1) { AfxMessageBox(TEXT("最大轮数必须设置!"), MB_ICONSTOP); ((CEdit *)GetDlgItem(IDC_EDIT_MAX_PLAY_ROUND))->SetFocus(); return false; } m_CustomRule.cbMinLookRound = (BYTE)GetDlgItemInt(IDC_EDIT_MIN_LOOK_CARD_ROUND); //数据校验; if (m_CustomRule.cbMinLookRound < 1) { AfxMessageBox(TEXT("最小看牌轮数必须设置!"), MB_ICONSTOP); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_LOOK_CARD_ROUND))->SetFocus(); return false; } m_CustomRule.cbMinCompareUser = (BYTE)GetDlgItemInt(IDC_EDIT_MIN_COMPARE_USER); //数据校验; if (m_CustomRule.cbMinCompareUser < 2) { AfxMessageBox(TEXT("最小比牌人数必须设置!"), MB_ICONSTOP); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_COMPARE_USER))->SetFocus(); return false; } m_CustomRule.cbMinCompareRound = (BYTE)GetDlgItemInt(IDC_EDIT_MIN_COMPARE_ROUND); //数据校验; if (m_CustomRule.cbMinCompareRound < 1) { AfxMessageBox(TEXT("最小比牌轮数必须设置!"), MB_ICONSTOP); ((CEdit *)GetDlgItem(IDC_EDIT_MIN_COMPARE_ROUND))->SetFocus(); return false; } return true; } //读取配置 bool CDlgCustomRule::GetCustomRule(tagCustomRule & CustomRule) { //读取参数 if (FillControlToData()==true) { CustomRule=m_CustomRule; return true; } return false; } //设置配置 bool CDlgCustomRule::SetCustomRule(tagCustomRule & CustomRule) { //设置变量 m_CustomRule=CustomRule; //更新参数 if (m_hWnd!=NULL) FillDataToControl(); return true; } //////////////////////////////////////////////////////////////////////////////////