Files
2026-03-03 13:56:44 +08:00

127 lines
2.9 KiB
C++

// ServerCtrlDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "ServerCtrlDlg.h"
#include "ServiceUnits.h"
// CServerCtrlDlg 对话框
IMPLEMENT_DYNAMIC(CServerCtrlDlg, CDialog)
CServerCtrlDlg::CServerCtrlDlg(CWnd* pParent /*=NULL*/)
: CDialog(CServerCtrlDlg::IDD, pParent)
{
}
CServerCtrlDlg::~CServerCtrlDlg()
{
}
void CServerCtrlDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_MSG_TEXT, m_EditMsgText);
DDX_Control(pDX, IDC_CHECK_SMT_EJECT, m_btnSMTEject);
DDX_Control(pDX, IDC_CHECK_SMT_TABLE_ROLL, m_btnSMTTableRoll);
DDX_Control(pDX, IDC_CHECK_SMT_CLOSE_GAME, m_btnSMTCloseGame);
}
BOOL CServerCtrlDlg::OnInitDialog()
{
__super::OnInitDialog();
return TRUE;
}
BEGIN_MESSAGE_MAP(CServerCtrlDlg, CDialog)
ON_BN_CLICKED(IDOK, &CServerCtrlDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_BTN_SEND_SYS_MSG, &CServerCtrlDlg::OnBnClickedBtnSendSysMsg)
ON_BN_CLICKED(IDC_BTN_MAINTAIN_SERVICE, &CServerCtrlDlg::OnBnClickedBtnMaintainService)
ON_BN_CLICKED(IDC_BTN_RECOVERY_SERVICE, &CServerCtrlDlg::OnBnClickedBtnRecoveryService)
ON_BN_CLICKED(IDC_BTN_CLEAR_LOCKER, &CServerCtrlDlg::OnBnClickedBtnClearLocker)
END_MESSAGE_MAP()
void CServerCtrlDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
CDialog::OnOK();
}
void CServerCtrlDlg::OnBnClickedBtnSendSysMsg()
{
// TODO: 在此添加控件通知处理程序代码
CString strMsg;
m_EditMsgText.GetWindowText(strMsg);
if ( strMsg.IsEmpty() )
{
AfxMessageBox("消息内容必须填写");
return;
}
CMD_CM_SystemMessage msg;
ZeroMemory(&msg, sizeof(CMD_CM_SystemMessage));
//构造数据
lstrcpyn(msg.szString, strMsg.GetBuffer(), CountArray(msg.szString));
if (m_btnSMTEject.GetCheck() == BST_CHECKED)
{
msg.wType |= SMT_EJECT;
}
if (m_btnSMTTableRoll.GetCheck() == BST_CHECKED)
{
msg.wType |= SMT_TABLE_ROLL;
}
if (m_btnSMTCloseGame.GetCheck() == BST_CHECKED)
{
msg.wType |= SMT_CLOSE_GAME;
}
if (CServiceUnits::g_pServiceUnits != nullptr)
{
//通知服务器维护
CServiceUnits::g_pServiceUnits->SendSystemMessage(&msg);
AfxMessageBox(TEXT("执行成功"));
}
}
void CServerCtrlDlg::OnBnClickedBtnMaintainService()
{
// TODO: 在此添加控件通知处理程序代码
//维护询问
LPCTSTR pszQuestion = TEXT("游戏服务器正在运行中,您确实要维护服务器吗?");
if (AfxMessageBox(pszQuestion, MB_YESNO | MB_DEFBUTTON2 | MB_ICONQUESTION) != IDYES)
{
return ;
}
if ( CServiceUnits::g_pServiceUnits!=nullptr )
{
CServiceUnits::g_pServiceUnits->MaintainService(TRUE);
CTraceService::TraceString(TEXT("服务器即将维护"), TraceLevel_Warning);
AfxMessageBox(TEXT("执行成功"));
}
}
void CServerCtrlDlg::OnBnClickedBtnRecoveryService()
{
// TODO: 在此添加控件通知处理程序代码
if (CServiceUnits::g_pServiceUnits != nullptr)
{
CServiceUnits::g_pServiceUnits->MaintainService(FALSE);
CTraceService::TraceString(TEXT("服务恢复"), TraceLevel_Warning);
AfxMessageBox(TEXT("执行成功"));
}
}
void CServerCtrlDlg::OnBnClickedBtnClearLocker()
{
}