Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
729
Server/ManageTool/ManageSetup/dialog/ManageSetupDlg.cpp
Normal file
729
Server/ManageTool/ManageSetup/dialog/ManageSetupDlg.cpp
Normal file
@@ -0,0 +1,729 @@
|
||||
// ManageSetupDlg.cpp : 구현 파일
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ManageSetup.h"
|
||||
#include "ManageSetupDlg.h"
|
||||
#include "ManageSetupClient.h"
|
||||
|
||||
#include "ServerToolUserManagementDlg.h"
|
||||
#include "RunInfoEditDlg.h"
|
||||
|
||||
#include <ServerManage/ManageClientManager.h>
|
||||
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
#endif
|
||||
|
||||
|
||||
// 응용 프로그램 정보에 사용되는 CAboutDlg 대화 상자입니다.
|
||||
|
||||
class CAboutDlg : public CDialog
|
||||
{
|
||||
public:
|
||||
CAboutDlg();
|
||||
|
||||
// 대화 상자 데이터
|
||||
enum { IDD = IDD_ABOUTBOX };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원
|
||||
|
||||
// 구현
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
||||
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
|
||||
{
|
||||
}
|
||||
|
||||
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
|
||||
// CManageSetupDlg 대화 상자
|
||||
|
||||
CManageSetupDlg::CManageSetupDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CManageSetupDlg::IDD, pParent)
|
||||
, m_strNewServerIP(_T(""))
|
||||
, m_strNewServerName(_T(""))
|
||||
, m_strNewExePath(_T(""))
|
||||
, m_strSelExePath(_T(""))
|
||||
, m_strSelServerName(_T(""))
|
||||
, m_strNewOption(_T(""))
|
||||
, m_strSelOption(_T(""))
|
||||
{
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
}
|
||||
|
||||
void CManageSetupDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
||||
DDX_Control (pDX, IDC_MACHINE_LIST, m_ctrlMachine);
|
||||
DDX_Control (pDX, IDC_EXECUTEPATH_LIST, m_ctrlExecutePath);
|
||||
|
||||
DDX_Text (pDX, IDC_NEWMACHINEIP_EDIT, m_strNewServerIP);
|
||||
DDX_Text (pDX, IDC_NEWMACHINENAME_EDIT, m_strNewServerName);
|
||||
DDX_Text (pDX, IDC_EXEPATH_EDIT, m_strNewExePath);
|
||||
DDX_Text (pDX, IDC_SELEXEPATH_EDIT, m_strSelExePath);
|
||||
DDX_Text (pDX, IDC_SELSERVERNAME_EDIT, m_strSelServerName);
|
||||
|
||||
DDX_Text(pDX, IDC_NEWOPTION_EDIT, m_strNewOption);
|
||||
DDX_Text(pDX, IDC_SELOPTION_EDIT, m_strSelOption);
|
||||
DDX_Control(pDX, IDC_OPTION_LIST, m_ctrlOption);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CManageSetupDlg, CDialog)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
//}}AFX_MSG_MAP
|
||||
ON_BN_CLICKED(IDC_MACHINEADD_BTN, OnBnClickedMachineaddBtn)
|
||||
ON_BN_CLICKED(IDC_MACHINEMODIFY_BTN, OnBnClickedMachinemodifyBtn)
|
||||
ON_BN_CLICKED(IDC_MACHINEDEL_BTN, OnBnClickedMachinedelBtn)
|
||||
ON_BN_CLICKED(IDC_ADDEXEPATH_BTN, OnBnClickedAddexepathBtn)
|
||||
ON_BN_CLICKED(IDC_DELEXEPATH_BTN, OnBnClickedDelexepathBtn)
|
||||
ON_BN_CLICKED(IDC_MODIFYEXEPATH_BTN, OnBnClickedModifyexepathBtn)
|
||||
|
||||
ON_NOTIFY(LVN_ITEMCHANGED, IDC_EXECUTEPATH_LIST, OnLvnItemchangedExecutepathList)
|
||||
ON_NOTIFY(LVN_ITEMCHANGED, IDC_MACHINE_LIST, OnLvnItemchangedMachineList)
|
||||
ON_COMMAND(ID_FUNCTIONS_RUNINFOEDIT, OnFunctionsRuninfoedit)
|
||||
ON_COMMAND(ID_FUNCTIONS_USERMANAGEMENT, OnFunctionsUsermanagement)
|
||||
|
||||
ON_BN_CLICKED(IDC_ADDOPTION_BTN, OnBnClickedAddoptionBtn)
|
||||
ON_BN_CLICKED(IDC_MODIFYOPTION_BTN, OnBnClickedModifyoptionBtn)
|
||||
ON_BN_CLICKED(IDC_DELOPTION_BTN, OnBnClickedDeloptionBtn)
|
||||
ON_NOTIFY(LVN_ITEMCHANGED, IDC_OPTION_LIST, OnLvnItemchangedOptionList)
|
||||
ON_COMMAND(ID_FUNCTIONS_MANAGESETUPCLIENT, OnFunctionsManagesetupclient)
|
||||
ON_COMMAND(ID_FUNCTIONS_EXIT, OnFunctionsExit)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CManageSetupDlg 메시지 처리기
|
||||
|
||||
BOOL CManageSetupDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// 시스템 메뉴에 "정보..." 메뉴 항목을 추가합니다.
|
||||
|
||||
// IDM_ABOUTBOX는 시스템 명령 범위에 있어야 합니다.
|
||||
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
|
||||
ASSERT(IDM_ABOUTBOX < 0xF000);
|
||||
|
||||
CMenu* pSysMenu = GetSystemMenu(FALSE);
|
||||
if (pSysMenu != NULL)
|
||||
{
|
||||
CString strAboutMenu;
|
||||
strAboutMenu.LoadString(IDS_ABOUTBOX);
|
||||
if (!strAboutMenu.IsEmpty())
|
||||
{
|
||||
pSysMenu->AppendMenu(MF_SEPARATOR);
|
||||
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
|
||||
}
|
||||
}
|
||||
|
||||
// 이 대화 상자의 아이콘을 설정합니다. 응용 프로그램의 주 창이 대화 상자가 아닐 경우에는
|
||||
// 프레임워크가 이 작업을 자동으로 수행합니다.
|
||||
SetIcon(m_hIcon, TRUE); // 큰 아이콘을 설정합니다.
|
||||
SetIcon(m_hIcon, FALSE); // 작은 아이콘을 설정합니다.
|
||||
|
||||
|
||||
// 각종 컨트롤 초기화 및 설정
|
||||
|
||||
m_ctrlMachine.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
||||
m_ctrlMachine.SetBkColor ( COLORREF RGB( 255, 170, 170) );
|
||||
m_ctrlMachine.SetTextBkColor ( COLORREF RGB( 255, 170, 170) );
|
||||
m_ctrlMachine.InsertColumn ( 0, _T("IP"), LVCFMT_LEFT, 105 );
|
||||
m_ctrlMachine.InsertColumn ( 1, _T("Name"), LVCFMT_LEFT, 80 );
|
||||
|
||||
m_ctrlExecutePath.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
||||
m_ctrlExecutePath.SetBkColor ( COLORREF RGB( 230, 243, 254) );
|
||||
m_ctrlExecutePath.SetTextBkColor ( COLORREF RGB( 230, 243, 254) );
|
||||
m_ctrlExecutePath.InsertColumn ( 0, _T("Index"), LVCFMT_LEFT, 55 );
|
||||
m_ctrlExecutePath.InsertColumn ( 1, _T("Full Path"), LVCFMT_LEFT, 510 );
|
||||
|
||||
|
||||
m_ctrlOption.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
||||
m_ctrlOption.SetBkColor ( COLORREF RGB( 255, 255, 193) );
|
||||
m_ctrlOption.SetTextBkColor ( COLORREF RGB( 255, 255, 193) );
|
||||
m_ctrlOption.InsertColumn ( 0, _T("Index"), LVCFMT_LEFT, 55 );
|
||||
m_ctrlOption.InsertColumn ( 1, _T("Run Option"), LVCFMT_LEFT, 510 );
|
||||
|
||||
ServerListSet();
|
||||
ExecutePathListSet();
|
||||
OptionListSet();
|
||||
|
||||
return TRUE; // 컨트롤에 대한 포커스를 설정하지 않을 경우 TRUE를 반환합니다.
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnSysCommand(UINT nID, LPARAM lParam)
|
||||
{
|
||||
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
|
||||
{
|
||||
CAboutDlg dlgAbout;
|
||||
dlgAbout.DoModal();
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnSysCommand(nID, lParam);
|
||||
}
|
||||
}
|
||||
|
||||
// 대화 상자에 최소화 단추를 추가할 경우 아이콘을 그리려면
|
||||
// 아래 코드가 필요합니다. 문서/뷰 모델을 사용하는 MFC 응용 프로그램의 경우에는
|
||||
// 프레임워크에서 이 작업을 자동으로 수행합니다.
|
||||
|
||||
void CManageSetupDlg::OnPaint()
|
||||
{
|
||||
if (IsIconic())
|
||||
{
|
||||
CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트
|
||||
|
||||
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
|
||||
|
||||
// 클라이언트 사각형에서 아이콘을 가운데에 맞춥니다.
|
||||
int cxIcon = GetSystemMetrics(SM_CXICON);
|
||||
int cyIcon = GetSystemMetrics(SM_CYICON);
|
||||
CRect rect;
|
||||
GetClientRect(&rect);
|
||||
int x = (rect.Width() - cxIcon + 1) / 2;
|
||||
int y = (rect.Height() - cyIcon + 1) / 2;
|
||||
|
||||
// 아이콘을 그립니다.
|
||||
dc.DrawIcon(x, y, m_hIcon);
|
||||
}
|
||||
else
|
||||
{
|
||||
CDialog::OnPaint();
|
||||
}
|
||||
}
|
||||
|
||||
// 사용자가 최소화된 창을 끄는 동안에 커서가 표시되도록 시스템에서
|
||||
// 이 함수를 호출합니다.
|
||||
HCURSOR CManageSetupDlg::OnQueryDragIcon()
|
||||
{
|
||||
return static_cast<HCURSOR>(m_hIcon);
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------------
|
||||
// 리스트 컨트롤 갱신
|
||||
|
||||
void CManageSetupDlg::ServerListSet()
|
||||
{
|
||||
m_ctrlMachine.DeleteAllItems();
|
||||
|
||||
CManageClientManager::RunTable runTable;
|
||||
CManageClientManager::GetInstance().Get(CManageClientManager::SERVER_INFO, runTable);
|
||||
|
||||
CManageClientManager::RunTable::iterator pos = runTable.begin();
|
||||
CManageClientManager::RunTable::iterator end = runTable.end();
|
||||
|
||||
unsigned int nIndex = 0;
|
||||
in_addr addr;
|
||||
|
||||
for(; pos != end; ++pos, ++nIndex)
|
||||
{
|
||||
ServerManage::RunInfo& runInfo = pos->second;
|
||||
|
||||
addr.S_un.S_addr = runInfo.m_dwServerIP;
|
||||
|
||||
m_ctrlMachine.InsertItem(nIndex, inet_ntoa(addr));
|
||||
m_ctrlMachine.SetItemText(nIndex, 1, runInfo.m_szServerName);
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::ExecutePathListSet()
|
||||
{
|
||||
m_ctrlExecutePath.DeleteAllItems();
|
||||
|
||||
CManageClientManager::RunTable runTable;
|
||||
CManageClientManager::GetInstance().Get(CManageClientManager::RUN_PATH_INFO, runTable);
|
||||
|
||||
CManageClientManager::RunTable::iterator pos = runTable.begin();
|
||||
CManageClientManager::RunTable::iterator end = runTable.end();
|
||||
|
||||
const int MIN_BUFFER = 64;
|
||||
char szPathID[MIN_BUFFER];
|
||||
unsigned int nIndex = 0;
|
||||
|
||||
for(; pos != end; ++pos, ++nIndex)
|
||||
{
|
||||
ServerManage::RunInfo& runInfo = pos->second;
|
||||
|
||||
_snprintf(szPathID, MIN_BUFFER - 1, "%lu", runInfo.m_dwPathID);
|
||||
szPathID[MIN_BUFFER - 1] = 0;
|
||||
|
||||
m_ctrlExecutePath.InsertItem(nIndex, szPathID);
|
||||
m_ctrlExecutePath.SetItemText(nIndex, 1, runInfo.m_szPath);
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OptionListSet()
|
||||
{
|
||||
m_ctrlOption.DeleteAllItems();
|
||||
|
||||
CManageClientManager::RunTable runTable;
|
||||
CManageClientManager::GetInstance().Get(CManageClientManager::OPTION_INFO, runTable);
|
||||
|
||||
CManageClientManager::RunTable::iterator pos = runTable.begin();
|
||||
CManageClientManager::RunTable::iterator end = runTable.end();
|
||||
|
||||
const int MIN_BUFFER = 64;
|
||||
char szOptionID[MIN_BUFFER];
|
||||
unsigned int nIndex = 0;
|
||||
|
||||
for(; pos != end; ++pos, ++nIndex)
|
||||
{
|
||||
ServerManage::RunInfo& runInfo = pos->second;
|
||||
|
||||
_snprintf(szOptionID, MIN_BUFFER - 1, "%lu", runInfo.m_dwOptionID);
|
||||
szOptionID[MIN_BUFFER - 1] = 0;
|
||||
|
||||
m_ctrlOption.InsertItem(nIndex, szOptionID);
|
||||
m_ctrlOption.SetItemText(nIndex, 1, runInfo.m_szOption);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// 서버 정보 추가, 수정, 삭제
|
||||
|
||||
void CManageSetupDlg::OnBnClickedMachineaddBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
if( (m_strNewServerIP != "") && (m_strNewServerName != "") )
|
||||
{
|
||||
unsigned long dwServerID = 0;
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
runInfo.m_dwServerIP = inet_addr(m_strNewServerIP);
|
||||
|
||||
_snprintf(runInfo.m_szServerName, ServerManage::RunInfo::MAX_SERVER_NAME - 1,
|
||||
"%s", m_strNewServerName);
|
||||
|
||||
runInfo.m_szServerName[ServerManage::RunInfo::MAX_SERVER_NAME - 1] = 0;
|
||||
|
||||
if(CManageClientManager::GetInstance().Add(
|
||||
CManageClientManager::SERVER_INFO, runInfo, dwServerID))
|
||||
{
|
||||
m_strNewServerIP = _T("");
|
||||
m_strNewServerName = _T("");
|
||||
|
||||
ServerListSet();
|
||||
UpdateData(false);
|
||||
GetDlgItem(IDC_NEWMACHINEIP_EDIT)->SetFocus();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Add server failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Empty value"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnBnClickedMachinemodifyBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
// 서버 이름 수정
|
||||
int nSelIndex = m_ctrlMachine.GetNextItem( -1, LVNI_SELECTED );
|
||||
if(-1 != nSelIndex)
|
||||
{
|
||||
unsigned long dwServerIP = inet_addr(m_ctrlMachine.GetItemText(nSelIndex, 0));
|
||||
|
||||
if(0 != dwServerIP)
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
unsigned long dwServerID = 0;
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
runInfo.m_dwServerIP = dwServerIP;
|
||||
|
||||
_snprintf(runInfo.m_szServerName, ServerManage::RunInfo::MAX_SERVER_NAME - 1,
|
||||
"%s", m_strSelServerName);
|
||||
|
||||
runInfo.m_szServerName[ServerManage::RunInfo::MAX_SERVER_NAME - 1] = 0;
|
||||
|
||||
if(CManageClientManager::GetInstance().Modify(
|
||||
CManageClientManager::SERVER_INFO, runInfo))
|
||||
{
|
||||
ServerListSet();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AfxMessageBox( _T("Add server failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CManageSetupDlg::OnBnClickedMachinedelBtn()
|
||||
{
|
||||
int nSelIndex = m_ctrlMachine.GetNextItem( -1, LVNI_SELECTED );
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
unsigned long dwServerIP = inet_addr(m_ctrlMachine.GetItemText(nSelIndex, 0));
|
||||
|
||||
if(0 != dwServerIP)
|
||||
{
|
||||
if(CManageClientManager::GetInstance().Remove(
|
||||
CManageClientManager::SERVER_INFO, dwServerIP, true))
|
||||
{
|
||||
ServerListSet();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
AfxMessageBox( _T("Remove machine failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnLvnItemchangedMachineList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
int nSelIndex = m_ctrlMachine.GetNextItem(-1, LVNI_SELECTED);
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
m_strSelServerName.SetString(m_ctrlMachine.GetItemText(nSelIndex, 1));
|
||||
UpdateData(false);
|
||||
}
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// 실행 경로 추가, 수정, 삭제
|
||||
|
||||
void CManageSetupDlg::OnBnClickedAddexepathBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
if(m_strNewExePath != _T(""))
|
||||
{
|
||||
unsigned long dwPathID = 0;
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
_snprintf(runInfo.m_szPath, ServerManage::RunInfo::MAX_PATH_LEN - 1, "%s", m_strNewExePath);
|
||||
runInfo.m_szPath[ServerManage::RunInfo::MAX_PATH_LEN - 1] = 0;
|
||||
|
||||
if(CManageClientManager::GetInstance().Add(
|
||||
CManageClientManager::RUN_PATH_INFO, runInfo, dwPathID))
|
||||
{
|
||||
m_strNewExePath = _T("");
|
||||
ExecutePathListSet();
|
||||
UpdateData(false);
|
||||
GetDlgItem(IDC_EXEPATH_EDIT)->SetFocus();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Add run path failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Empty value"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnBnClickedModifyexepathBtn()
|
||||
{
|
||||
UpdateData(true);
|
||||
|
||||
int nSelIndex = m_ctrlExecutePath.GetNextItem( -1, LVNI_SELECTED );
|
||||
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
unsigned long dwPathID = 0;
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
runInfo.m_dwPathID = atol(m_ctrlExecutePath.GetItemText(nSelIndex, 0));
|
||||
_snprintf(runInfo.m_szPath, ServerManage::RunInfo::MAX_PATH_LEN - 1, "%s", m_strSelExePath);
|
||||
runInfo.m_szPath[ServerManage::RunInfo::MAX_PATH_LEN - 1] = 0;
|
||||
|
||||
if(CManageClientManager::GetInstance().Modify(
|
||||
CManageClientManager::RUN_PATH_INFO, runInfo))
|
||||
{
|
||||
ExecutePathListSet();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Modify run path failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnBnClickedDelexepathBtn()
|
||||
{
|
||||
int nSelIndex = m_ctrlExecutePath.GetNextItem( -1, LVNI_SELECTED );
|
||||
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
if(CManageClientManager::GetInstance().Remove(
|
||||
CManageClientManager::RUN_PATH_INFO,
|
||||
atol(m_ctrlExecutePath.GetItemText(nSelIndex, 0)), true))
|
||||
{
|
||||
ExecutePathListSet();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Remove run path failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnLvnItemchangedExecutepathList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
int nSelIndex = m_ctrlExecutePath.GetNextItem(-1, LVNI_SELECTED);
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
m_strSelExePath = m_ctrlExecutePath.GetItemText(nSelIndex, 1);
|
||||
UpdateData(false);
|
||||
}
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// 옵션 관련 처리 함수들
|
||||
|
||||
void CManageSetupDlg::OnBnClickedAddoptionBtn()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
UpdateData(true);
|
||||
|
||||
if(m_strNewOption != _T(""))
|
||||
{
|
||||
unsigned long dwOptionID = 0;
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
_snprintf(runInfo.m_szOption, ServerManage::RunInfo::MAX_PATH_LEN - 1, "%s", m_strNewOption);
|
||||
runInfo.m_szOption[ServerManage::RunInfo::MAX_PATH_LEN - 1] = 0;
|
||||
|
||||
if(CManageClientManager::GetInstance().Add(
|
||||
CManageClientManager::OPTION_INFO, runInfo, dwOptionID))
|
||||
{
|
||||
m_strNewOption = _T("");
|
||||
OptionListSet();
|
||||
UpdateData(false);
|
||||
GetDlgItem(IDC_NEWOPTION_EDIT)->SetFocus();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Add option failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Empty value"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnBnClickedModifyoptionBtn()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
UpdateData(true);
|
||||
|
||||
int nSelIndex = m_ctrlOption.GetNextItem( -1, LVNI_SELECTED );
|
||||
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
runInfo.m_dwOptionID = atol(m_ctrlOption.GetItemText(nSelIndex, 0));
|
||||
_snprintf(runInfo.m_szOption, ServerManage::RunInfo::MAX_PATH_LEN - 1, "%s", m_strSelOption);
|
||||
runInfo.m_szOption[ServerManage::RunInfo::MAX_PATH_LEN - 1] = 0;
|
||||
|
||||
if(CManageClientManager::GetInstance().Modify(
|
||||
CManageClientManager::OPTION_INFO, runInfo))
|
||||
{
|
||||
OptionListSet();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Modify option failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnBnClickedDeloptionBtn()
|
||||
{
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
int nSelIndex = m_ctrlOption.GetNextItem( -1, LVNI_SELECTED );
|
||||
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
if(CManageClientManager::GetInstance().Remove(
|
||||
CManageClientManager::OPTION_INFO,
|
||||
atol(m_ctrlOption.GetItemText(nSelIndex, 0)), true))
|
||||
{
|
||||
OptionListSet();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( _T("Remove option failed"), MB_OK | MB_ICONINFORMATION );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnLvnItemchangedOptionList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
||||
|
||||
int nSelIndex = m_ctrlOption.GetNextItem(-1, LVNI_SELECTED);
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
m_strSelOption = m_ctrlOption.GetItemText(nSelIndex, 1);
|
||||
UpdateData(false);
|
||||
}
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
BOOL CManageSetupDlg::PreTranslateMessage(MSG* pMsg)
|
||||
{
|
||||
// Enter키 눌렀을때
|
||||
if( ( pMsg->message == WM_KEYDOWN ) && ( pMsg->wParam == VK_RETURN ) )
|
||||
{
|
||||
UpdateData( true );
|
||||
|
||||
if( ( GetFocus() == GetDlgItem(IDC_NEWMACHINENAME_EDIT) )
|
||||
&& (m_strNewServerIP != "") && (m_strNewServerName != "") )
|
||||
OnBnClickedMachineaddBtn();
|
||||
else if( ( GetFocus() == GetDlgItem(IDC_EXEPATH_EDIT) ) && (m_strNewExePath != _T("")) )
|
||||
OnBnClickedAddexepathBtn();
|
||||
else if( ( GetFocus() == GetDlgItem(IDC_NEWEXEINFO_EDIT) ) && (m_strNewOption != _T("")) )
|
||||
OnBnClickedAddoptionBtn();
|
||||
else if( GetFocus() == GetDlgItem(IDC_SELSERVERNAME_EDIT) )
|
||||
OnBnClickedMachinemodifyBtn();
|
||||
else if( GetFocus() == GetDlgItem(IDC_SELEXEPATH_EDIT) )
|
||||
OnBnClickedModifyexepathBtn();
|
||||
else if( GetFocus() == GetDlgItem(IDC_SELOPTION_EDIT) )
|
||||
OnBnClickedModifyoptionBtn();
|
||||
}
|
||||
|
||||
return CDialog::PreTranslateMessage(pMsg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void CManageSetupDlg::GetMachineList(CComboBox& cbCombo)
|
||||
{
|
||||
int nMaxItemCount = m_ctrlMachine.GetItemCount();
|
||||
|
||||
CString szString;
|
||||
|
||||
TCHAR szIP[MAX_PATH];
|
||||
TCHAR szServerName[MAX_PATH];
|
||||
|
||||
for(int nItemCount = 0; nItemCount < nMaxItemCount; ++nItemCount)
|
||||
{
|
||||
m_ctrlMachine.GetItemText(nItemCount, 0, szIP, MAX_PATH);
|
||||
m_ctrlMachine.GetItemText(nItemCount, 1, szServerName, MAX_PATH);
|
||||
|
||||
szString.Format("%s : %s", szIP, szServerName);
|
||||
cbCombo.InsertString(nItemCount, szString);
|
||||
cbCombo.SetItemData(nItemCount, inet_addr(szIP));
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::GetPathList(CComboBox& cbCombo)
|
||||
{
|
||||
int nMaxItemCount = m_ctrlExecutePath.GetItemCount();
|
||||
|
||||
CString szString;
|
||||
|
||||
TCHAR szID[MAX_PATH];
|
||||
TCHAR szValue[MAX_PATH];
|
||||
|
||||
for(int nItemCount = 0; nItemCount < nMaxItemCount; ++nItemCount)
|
||||
{
|
||||
m_ctrlExecutePath.GetItemText(nItemCount, 0, szID, MAX_PATH);
|
||||
m_ctrlExecutePath.GetItemText(nItemCount, 1, szValue, MAX_PATH);
|
||||
|
||||
szString.Format("%s", szValue);
|
||||
cbCombo.InsertString(nItemCount, szString);
|
||||
cbCombo.SetItemData(nItemCount, atol(szID));
|
||||
}
|
||||
}
|
||||
|
||||
void CManageSetupDlg::GetOptionList(CComboBox& cbCombo)
|
||||
{
|
||||
int nMaxItemCount = m_ctrlOption.GetItemCount();
|
||||
|
||||
CString szString;
|
||||
|
||||
TCHAR szID[MAX_PATH];
|
||||
TCHAR szValue[MAX_PATH];
|
||||
|
||||
for(int nItemCount = 0; nItemCount < nMaxItemCount; ++nItemCount)
|
||||
{
|
||||
m_ctrlOption.GetItemText(nItemCount, 0, szID, MAX_PATH);
|
||||
m_ctrlOption.GetItemText(nItemCount, 1, szValue, MAX_PATH);
|
||||
|
||||
szString.Format("%s", szValue);
|
||||
cbCombo.InsertString(nItemCount, szString);
|
||||
cbCombo.SetItemData(nItemCount, atol(szID));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void CManageSetupDlg::OnFunctionsRuninfoedit()
|
||||
{
|
||||
CRunInfoEditDlg dlg;
|
||||
dlg.DoModal();
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnFunctionsUsermanagement()
|
||||
{
|
||||
CServerToolUserManagementDlg dlg;
|
||||
dlg.DoModal();
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnOK()
|
||||
{
|
||||
//CDialog::OnOK();
|
||||
}
|
||||
|
||||
|
||||
void CManageSetupDlg::OnFunctionsManagesetupclient()
|
||||
{
|
||||
// TODO: 여기에 명령 처리기 코드를 추가합니다.
|
||||
CManageSetupClient dlg;
|
||||
dlg.DoModal();
|
||||
}
|
||||
|
||||
void CManageSetupDlg::OnFunctionsExit()
|
||||
{
|
||||
// TODO: 여기에 명령 처리기 코드를 추가합니다.
|
||||
PostQuitMessage(0);
|
||||
}
|
||||
86
Server/ManageTool/ManageSetup/dialog/ManageSetupDlg.h
Normal file
86
Server/ManageTool/ManageSetup/dialog/ManageSetupDlg.h
Normal file
@@ -0,0 +1,86 @@
|
||||
// ManageSetupDlg.h : 헤더 파일
|
||||
//
|
||||
|
||||
#pragma once
|
||||
#include "afxcmn.h"
|
||||
#include "afxwin.h"
|
||||
|
||||
|
||||
// CManageSetupDlg 대화 상자
|
||||
class CManageSetupDlg : public CDialog
|
||||
{
|
||||
// 생성
|
||||
public:
|
||||
|
||||
CManageSetupDlg(CWnd* pParent = NULL); // 표준 생성자
|
||||
|
||||
void GetMachineList(CComboBox& cbCombo);
|
||||
void GetPathList(CComboBox& cbCombo);
|
||||
void GetOptionList(CComboBox& cbCombo);
|
||||
|
||||
// 대화 상자 데이터
|
||||
enum { IDD = IDD_MANAGECLIENTSETUPDLG };
|
||||
|
||||
protected:
|
||||
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원
|
||||
|
||||
|
||||
// 구현
|
||||
protected:
|
||||
|
||||
HICON m_hIcon;
|
||||
|
||||
// 메시지 맵 함수를 생성했습니다.
|
||||
virtual BOOL OnInitDialog();
|
||||
virtual BOOL PreTranslateMessage(MSG* pMsg);
|
||||
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
||||
afx_msg void OnPaint();
|
||||
virtual void OnOK();
|
||||
|
||||
afx_msg HCURSOR OnQueryDragIcon();
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
afx_msg void OnBnClickedMachineaddBtn(); // 서버 정보 추가
|
||||
afx_msg void OnBnClickedMachinemodifyBtn(); // 서버 이름 수정
|
||||
afx_msg void OnBnClickedMachinedelBtn(); // 서버 정보 삭제
|
||||
|
||||
afx_msg void OnBnClickedAddexepathBtn(); // 실행 경로 추가
|
||||
afx_msg void OnBnClickedModifyexepathBtn(); // 실행 경로 수정
|
||||
afx_msg void OnBnClickedDelexepathBtn(); // 실행 경로 삭제
|
||||
|
||||
afx_msg void OnBnClickedAddoptionBtn(); // 옵션 추가
|
||||
afx_msg void OnBnClickedModifyoptionBtn(); // 옵션 수정
|
||||
afx_msg void OnBnClickedDeloptionBtn(); // 옵션 삭제
|
||||
|
||||
afx_msg void OnLvnItemchangedMachineList(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg void OnLvnItemchangedExecutepathList(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
afx_msg void OnLvnItemchangedOptionList(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
|
||||
afx_msg void OnFunctionsRuninfoedit();
|
||||
afx_msg void OnFunctionsUsermanagement();
|
||||
|
||||
afx_msg void OnFunctionsManagesetupclient();
|
||||
afx_msg void OnFunctionsExit();
|
||||
|
||||
private:
|
||||
|
||||
CString m_strNewServerIP;
|
||||
CString m_strNewServerName;
|
||||
CString m_strSelServerName;
|
||||
|
||||
CString m_strNewExePath;
|
||||
CString m_strSelExePath;
|
||||
|
||||
CString m_strNewOption;
|
||||
CString m_strSelOption;
|
||||
|
||||
CListCtrl m_ctrlMachine; // 서버 정보 리스트
|
||||
CListCtrl m_ctrlExecutePath; // 실행 경로 리스트
|
||||
CListCtrl m_ctrlOption; // 옵션 리스트
|
||||
|
||||
// 리스트 컨트롤 갱신 함수
|
||||
void ServerListSet(); // 서버 정보 리스트 갱신
|
||||
void ExecutePathListSet(); // 실행 경로 리스트 갱신
|
||||
void OptionListSet(); // 옵션 리스트 갱신
|
||||
};
|
||||
279
Server/ManageTool/ManageSetup/dialog/RunInfoEditDlg.cpp
Normal file
279
Server/ManageTool/ManageSetup/dialog/RunInfoEditDlg.cpp
Normal file
@@ -0,0 +1,279 @@
|
||||
// RunInfoEditDlg.cpp : 구현 파일입니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ManageSetup.h"
|
||||
#include "RuninfoEditDlg.h"
|
||||
#include "ManageSetupDlg.h"
|
||||
|
||||
#include <ServerManage/ManageClientManager.h>
|
||||
|
||||
// CRunInfoEditDlg 대화 상자입니다.
|
||||
|
||||
IMPLEMENT_DYNAMIC(CRunInfoEditDlg, CDialog)
|
||||
CRunInfoEditDlg::CRunInfoEditDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CRunInfoEditDlg::IDD, pParent)
|
||||
, m_strSelRunInfoIndex(_T(""))
|
||||
, m_strSelRunInfoIP(_T(""))
|
||||
, m_strSelRunInfoPath(_T(""))
|
||||
, m_strSelRunInfoOPT(_T(""))
|
||||
{
|
||||
}
|
||||
|
||||
CRunInfoEditDlg::~CRunInfoEditDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CRunInfoEditDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
||||
DDX_Control(pDX, IDC_SERVERIP_CB, m_ctrlServerIPCb);
|
||||
DDX_Control(pDX, IDC_EXEPATH_CB, m_ctrlExePathCb);
|
||||
DDX_Control(pDX, IDC_EXEOPT_CB, m_ctrlExeOptCb);
|
||||
DDX_Control(pDX, IDC_RUNINFO_LIST, m_ctrlRunInfoListCtrl);
|
||||
|
||||
DDX_Text(pDX, IDC_SELRUNINFOINDEX_EDIT, m_strSelRunInfoIndex);
|
||||
DDX_Text(pDX, IDC_SELRUNINFOIP_EDIT, m_strSelRunInfoIP);
|
||||
DDX_Text(pDX, IDC_SELRUNINFOPATH_EDIT, m_strSelRunInfoPath);
|
||||
DDX_Text(pDX, IDC_SELRUNINFOOPT_EDIT, m_strSelRunInfoOPT);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CRunInfoEditDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_BIND_BTN, OnBnClickedBindBtn)
|
||||
ON_NOTIFY(LVN_ITEMCHANGED, IDC_RUNINFO_LIST, OnLvnItemchangedRuninfoList)
|
||||
ON_CBN_SELCHANGE(IDC_SERVERIP_CB, OnCbnSelchangeServeripCb)
|
||||
ON_CBN_SELCHANGE(IDC_EXEPATH_CB, OnCbnSelchangeExepathCb)
|
||||
ON_CBN_SELCHANGE(IDC_EXEOPT_CB, OnCbnSelchangeExeoptCb)
|
||||
ON_BN_CLICKED(IDC_MODIFYRUNINFO_BTN, OnBnClickedModifyruninfoBtn)
|
||||
ON_BN_CLICKED(IDC_DELETERUNINFO_BTN, OnBnClickedDeleteruninfoBtn)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CRunInfoEditDlg 메시지 처리기입니다.
|
||||
|
||||
BOOL CRunInfoEditDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
// 메인 다이얼로그 핸들 얻어오기
|
||||
CManageSetupDlg* lpMainDlg = static_cast<CManageSetupDlg*>(this->GetParent());
|
||||
|
||||
lpMainDlg->GetMachineList(m_ctrlServerIPCb);
|
||||
lpMainDlg->GetPathList(m_ctrlExePathCb);
|
||||
lpMainDlg->GetOptionList(m_ctrlExeOptCb);
|
||||
|
||||
m_ctrlServerIPCb.SetCurSel(0);
|
||||
m_ctrlExePathCb.SetCurSel(0);
|
||||
m_ctrlExeOptCb.SetCurSel(0);
|
||||
|
||||
m_ctrlRunInfoListCtrl.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
||||
//m_ctrlRunInfoListCtrl.SetBkColor ( COLORREF RGB( 255, 190, 125) );
|
||||
//m_ctrlRunInfoListCtrl.SetTextBkColor ( COLORREF RGB( 255, 190, 125) );
|
||||
m_ctrlRunInfoListCtrl.InsertColumn ( 0, _T("RunID"), LVCFMT_LEFT, 50 );
|
||||
m_ctrlRunInfoListCtrl.InsertColumn ( 1, _T("IP"), LVCFMT_LEFT, 105 );
|
||||
m_ctrlRunInfoListCtrl.InsertColumn ( 2, _T("Name"), LVCFMT_LEFT, 100 );
|
||||
m_ctrlRunInfoListCtrl.InsertColumn ( 3, _T("Path"), LVCFMT_LEFT, 400 );
|
||||
m_ctrlRunInfoListCtrl.InsertColumn ( 4, _T("Option"), LVCFMT_LEFT, 140 );
|
||||
|
||||
RunInfoListSet();
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
|
||||
}
|
||||
|
||||
|
||||
class CRefreshRunInfoList
|
||||
{
|
||||
public:
|
||||
|
||||
CRefreshRunInfoList(CListCtrl& ctrlList) : m_ctrlList(ctrlList) { }
|
||||
|
||||
bool operator () (const ServerManage::RunInfo& runInfo)
|
||||
{
|
||||
const int MIN_BUFFER = 32;
|
||||
char szRunID[MIN_BUFFER];
|
||||
|
||||
int nPosition = m_ctrlList.GetItemCount();
|
||||
|
||||
in_addr addr;
|
||||
addr.S_un.S_addr = runInfo.m_dwServerIP;
|
||||
|
||||
_snprintf(szRunID, MIN_BUFFER - 1, "%d", runInfo.m_dwRunID);
|
||||
szRunID[MIN_BUFFER - 1] = 0;
|
||||
|
||||
m_ctrlList.InsertItem (nPosition, "");
|
||||
m_ctrlList.SetItemText (nPosition, 0, szRunID);
|
||||
m_ctrlList.SetItemText (nPosition, 1, inet_ntoa(addr));
|
||||
m_ctrlList.SetItemText (nPosition, 2, runInfo.m_szServerName);
|
||||
m_ctrlList.SetItemText (nPosition, 3, runInfo.m_szPath);
|
||||
m_ctrlList.SetItemText (nPosition, 4, runInfo.m_szOption);
|
||||
|
||||
m_ctrlList.SetItemData(nPosition, runInfo.m_dwRunID);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private:
|
||||
CListCtrl& m_ctrlList;
|
||||
};
|
||||
|
||||
|
||||
void CRunInfoEditDlg::RunInfoListSet()
|
||||
{
|
||||
// RunInfo 리스트 컨트롤 갱신
|
||||
m_ctrlRunInfoListCtrl.DeleteAllItems();
|
||||
CManageClientManager::GetInstance().EnumRunInfo(CRefreshRunInfoList(m_ctrlRunInfoListCtrl));
|
||||
}
|
||||
|
||||
// ( RunInfo 추가, 수정, 삭제 )____________________________________________________________________________
|
||||
|
||||
void CRunInfoEditDlg::OnBnClickedBindBtn()
|
||||
{
|
||||
// RunInfo 추가
|
||||
|
||||
if((-1 != m_ctrlServerIPCb.GetCurSel())
|
||||
&& (-1 != m_ctrlExePathCb.GetCurSel())
|
||||
&& (-1 != m_ctrlExeOptCb.GetCurSel()))
|
||||
{
|
||||
unsigned long dwRunID = 0;
|
||||
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
runInfo.m_dwPathID = static_cast<unsigned long>(m_ctrlExePathCb.GetItemData(m_ctrlExePathCb.GetCurSel()));
|
||||
runInfo.m_dwOptionID = static_cast<unsigned long>(m_ctrlExeOptCb.GetItemData(m_ctrlExeOptCb.GetCurSel()));
|
||||
runInfo.m_dwServerIP = static_cast<unsigned long>(m_ctrlServerIPCb.GetItemData(m_ctrlServerIPCb.GetCurSel()));
|
||||
|
||||
if(CManageClientManager::GetInstance().Add(
|
||||
CManageClientManager::RUN_INFO, runInfo, dwRunID))
|
||||
{
|
||||
RunInfoListSet();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox("Add run info failed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CRunInfoEditDlg::OnBnClickedModifyruninfoBtn()
|
||||
{
|
||||
// RunInfo 수정
|
||||
|
||||
UpdateData( true );
|
||||
|
||||
int nSelIndex = m_ctrlRunInfoListCtrl.GetNextItem( -1, LVNI_SELECTED );
|
||||
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
ServerManage::RunInfo runInfo;
|
||||
memset(&runInfo, 0, sizeof(ServerManage::RunInfo));
|
||||
|
||||
runInfo.m_dwServerIP = static_cast<unsigned long>(m_ctrlServerIPCb.GetItemData(m_ctrlServerIPCb.GetCurSel()));
|
||||
runInfo.m_dwPathID = static_cast<unsigned long>(m_ctrlExePathCb.GetItemData(m_ctrlExePathCb.GetCurSel()));
|
||||
runInfo.m_dwOptionID = static_cast<unsigned long>(m_ctrlExeOptCb.GetItemData(m_ctrlExeOptCb.GetCurSel()));
|
||||
|
||||
if( CManageClientManager::GetInstance().Modify( CManageClientManager::RUN_INFO, runInfo) )
|
||||
{
|
||||
RunInfoListSet();
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( "Modify run info failed" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CRunInfoEditDlg::OnBnClickedDeleteruninfoBtn()
|
||||
{
|
||||
// RunInfo 삭제
|
||||
|
||||
UpdateData( true );
|
||||
|
||||
int nSelIndex = m_ctrlRunInfoListCtrl.GetNextItem( -1, LVNI_SELECTED );
|
||||
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
if(CManageClientManager::GetInstance().Remove(CManageClientManager::RUN_INFO,
|
||||
static_cast<unsigned long>(m_ctrlRunInfoListCtrl.GetItemData(nSelIndex)), true))
|
||||
{
|
||||
m_strSelRunInfoIndex = _T("");
|
||||
m_strSelRunInfoIP = _T("");
|
||||
m_strSelRunInfoPath = _T("");
|
||||
m_strSelRunInfoOPT = _T("");
|
||||
|
||||
RunInfoListSet();
|
||||
|
||||
UpdateData(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
AfxMessageBox( "Remove run info failed" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//_________________________________________________________________________________________________________
|
||||
|
||||
|
||||
void CRunInfoEditDlg::OnLvnItemchangedRuninfoList(NMHDR *pNMHDR, LRESULT *pResult)
|
||||
{
|
||||
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
|
||||
|
||||
CString strSelRunInfoName;
|
||||
|
||||
int nSelIndex = m_ctrlRunInfoListCtrl.GetNextItem(-1, LVNI_SELECTED);
|
||||
if( -1 != nSelIndex )
|
||||
{
|
||||
m_strSelRunInfoIndex = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 0 );
|
||||
m_strSelRunInfoIP = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 1 );
|
||||
strSelRunInfoName = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 2 );
|
||||
m_strSelRunInfoPath = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 3 );
|
||||
m_strSelRunInfoOPT = m_ctrlRunInfoListCtrl.GetItemText( nSelIndex, 4 );
|
||||
}
|
||||
|
||||
CString strFindingKey;
|
||||
strFindingKey.Format( "%s : %s", m_strSelRunInfoIP, strSelRunInfoName );
|
||||
|
||||
m_ctrlServerIPCb.SetCurSel ( m_ctrlServerIPCb.FindString ( 0, strFindingKey ) );
|
||||
m_ctrlExePathCb.SetCurSel ( m_ctrlExePathCb.FindString ( 0, m_strSelRunInfoPath ) );
|
||||
m_ctrlExeOptCb.SetCurSel ( m_ctrlExeOptCb.FindString ( 0, m_strSelRunInfoOPT ) );
|
||||
|
||||
UpdateData(false);
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CRunInfoEditDlg::OnCbnSelchangeServeripCb()
|
||||
{
|
||||
if( m_strSelRunInfoIndex != "" )
|
||||
{
|
||||
m_ctrlServerIPCb.GetLBText(m_ctrlServerIPCb.GetCurSel(), m_strSelRunInfoIP);
|
||||
UpdateData(false);
|
||||
}
|
||||
}
|
||||
|
||||
void CRunInfoEditDlg::OnCbnSelchangeExepathCb()
|
||||
{
|
||||
if( m_strSelRunInfoIndex != "" )
|
||||
{
|
||||
m_ctrlExePathCb.GetLBText(m_ctrlExePathCb.GetCurSel(), m_strSelRunInfoPath);
|
||||
UpdateData(false);
|
||||
}
|
||||
}
|
||||
|
||||
void CRunInfoEditDlg::OnCbnSelchangeExeoptCb()
|
||||
{
|
||||
if( m_strSelRunInfoIndex != "" )
|
||||
{
|
||||
m_ctrlExeOptCb.GetLBText(m_ctrlExeOptCb.GetCurSel(), m_strSelRunInfoOPT);
|
||||
UpdateData(false);
|
||||
}
|
||||
}
|
||||
|
||||
void CRunInfoEditDlg::OnOK()
|
||||
{
|
||||
// CDialog::OnOK();
|
||||
}
|
||||
49
Server/ManageTool/ManageSetup/dialog/RunInfoEditDlg.h
Normal file
49
Server/ManageTool/ManageSetup/dialog/RunInfoEditDlg.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#pragma once
|
||||
#include "afxwin.h"
|
||||
#include "afxcmn.h"
|
||||
|
||||
|
||||
// CRunInfoEditDlg 대화 상자입니다.
|
||||
|
||||
class CRunInfoEditDlg : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CRunInfoEditDlg)
|
||||
|
||||
public:
|
||||
CRunInfoEditDlg(CWnd* pParent = NULL); // 표준 생성자입니다.
|
||||
virtual ~CRunInfoEditDlg();
|
||||
|
||||
// 대화 상자 데이터입니다.
|
||||
enum { IDD = IDD_RUNINFOEDITDLG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
virtual BOOL OnInitDialog();
|
||||
|
||||
afx_msg void OnBnClickedBindBtn();
|
||||
afx_msg void OnLvnItemchangedRuninfoList(NMHDR *pNMHDR, LRESULT *pResult);
|
||||
virtual void OnOK();
|
||||
|
||||
afx_msg void OnCbnSelchangeServeripCb();
|
||||
afx_msg void OnCbnSelchangeExepathCb();
|
||||
afx_msg void OnCbnSelchangeExeoptCb();
|
||||
|
||||
afx_msg void OnBnClickedModifyruninfoBtn();
|
||||
afx_msg void OnBnClickedDeleteruninfoBtn();
|
||||
|
||||
private:
|
||||
CComboBox m_ctrlServerIPCb;
|
||||
CComboBox m_ctrlExePathCb;
|
||||
CComboBox m_ctrlExeOptCb;
|
||||
CListCtrl m_ctrlRunInfoListCtrl;
|
||||
|
||||
CString m_strSelRunInfoIndex;
|
||||
CString m_strSelRunInfoIP;
|
||||
CString m_strSelRunInfoPath;
|
||||
CString m_strSelRunInfoOPT;
|
||||
|
||||
void RunInfoListSet(); // RunInfo 리스트 컨트롤 갱신
|
||||
};
|
||||
@@ -0,0 +1,160 @@
|
||||
// ServerToolUserManagementDlg.cpp : 구현 파일
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ManageSetup.h"
|
||||
#include "ServerToolUserManagementDlg.h"
|
||||
|
||||
#include "UserRegEditDlg.h"
|
||||
|
||||
#include <UserManage/ToolUserManageTable.h>
|
||||
|
||||
|
||||
const TCHAR* GetLVString( int nLVIndex )
|
||||
{
|
||||
switch( nLVIndex )
|
||||
{
|
||||
case CToolUserManager::MASTER: return _T("MASTER");
|
||||
case CToolUserManager::GENERAL: return _T("GENERAL");
|
||||
case CToolUserManager::MONITORING: return _T("MONITORING");
|
||||
|
||||
}
|
||||
|
||||
return _T("UNKNOWN");
|
||||
}
|
||||
|
||||
|
||||
|
||||
// CServerToolUserManagementDlg 대화 상자
|
||||
|
||||
CServerToolUserManagementDlg::CServerToolUserManagementDlg(CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CServerToolUserManagementDlg::IDD, pParent)
|
||||
{
|
||||
}
|
||||
|
||||
void CServerToolUserManagementDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
||||
DDX_Control(pDX, IDC_USERINFO_LIST, m_ctrlUserInfoList);
|
||||
}
|
||||
|
||||
BEGIN_MESSAGE_MAP(CServerToolUserManagementDlg, CDialog)
|
||||
ON_WM_SYSCOMMAND()
|
||||
ON_WM_PAINT()
|
||||
ON_WM_QUERYDRAGICON()
|
||||
//}}AFX_MSG_MAP
|
||||
|
||||
ON_BN_CLICKED(IDC_USER_REG, OnBnClickedUserReg)
|
||||
ON_BN_CLICKED(IDC_USER_EDIT, OnBnClickedUserEdit)
|
||||
ON_BN_CLICKED(IDC_USER_DEL, OnBnClickedUserDel)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// CServerToolUserManagementDlg 메시지 처리기
|
||||
|
||||
BOOL CServerToolUserManagementDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
m_ctrlUserInfoList.SetExtendedStyle ( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
|
||||
//m_ctrlUserInfoList.SetBkColor ( COLORREF RGB( 255, 190, 125) );
|
||||
//m_ctrlUserInfoList.SetTextBkColor ( COLORREF RGB( 255, 190, 125) );
|
||||
|
||||
m_ctrlUserInfoList.InsertColumn ( 0, _T("ID"), LVCFMT_LEFT, 100 );
|
||||
m_ctrlUserInfoList.InsertColumn ( 1, _T("NAME"), LVCFMT_LEFT, 80 );
|
||||
m_ctrlUserInfoList.InsertColumn ( 2, _T("IP"), LVCFMT_LEFT, 110 );
|
||||
m_ctrlUserInfoList.InsertColumn ( 3, _T("ADMIN LV"), LVCFMT_LEFT, 100 );
|
||||
|
||||
UserListSet(); // 운영자 정보 DB를 읽어서 리스트에 표시
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
struct SORT_BY_ID
|
||||
{
|
||||
bool operator () (const ServerManage::UserInfo& lhs, const ServerManage::UserInfo& rhs)
|
||||
{
|
||||
return std::lexicographical_compare(lhs.szID, lhs.szID + strlen(lhs.szID),
|
||||
rhs.szID, rhs.szID + strlen(rhs.szID));
|
||||
}
|
||||
};
|
||||
|
||||
bool CServerToolUserManagementDlg::UserListSet()
|
||||
{
|
||||
// 리스트 컨트롤 클리어
|
||||
m_ctrlUserInfoList.DeleteAllItems();
|
||||
|
||||
CToolUserManager::UserList userList;
|
||||
|
||||
// DB를 읽어서 리스트 컨트롤에 셋팅
|
||||
CToolUserManager::GetInstance().GetUserInfo(userList);
|
||||
|
||||
userList.sort(SORT_BY_ID());
|
||||
|
||||
CToolUserManager::UserList::iterator pos = userList.begin();
|
||||
CToolUserManager::UserList::iterator end = userList.end();
|
||||
|
||||
in_addr userIP;
|
||||
|
||||
int nCount = 0;
|
||||
|
||||
for(;pos != end; ++pos, ++nCount)
|
||||
{
|
||||
ServerManage::UserInfo& userInfo = *pos;
|
||||
|
||||
m_ctrlUserInfoList.InsertItem(nCount, userInfo.szID );
|
||||
m_ctrlUserInfoList.SetItemText(nCount, 1, userInfo.szFullName );
|
||||
|
||||
userIP.S_un.S_addr = userInfo.dwIP;
|
||||
m_ctrlUserInfoList.SetItemText(nCount, 2, inet_ntoa(userIP));
|
||||
m_ctrlUserInfoList.SetItemText(nCount, 3, GetLVString(userInfo.usAdminLevel));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void CServerToolUserManagementDlg::OnBnClickedUserReg()
|
||||
{
|
||||
CUserRegEditDlg RegDlg(0);
|
||||
RegDlg.DoModal();
|
||||
|
||||
UserListSet();
|
||||
}
|
||||
|
||||
void CServerToolUserManagementDlg::OnBnClickedUserEdit()
|
||||
{
|
||||
int nSelectedIndex = m_ctrlUserInfoList.GetNextItem(-1, LVIS_SELECTED);
|
||||
|
||||
if(-1 != nSelectedIndex)
|
||||
{
|
||||
char szID[ServerManage::UserInfo::ID_LEN];
|
||||
m_ctrlUserInfoList.GetItemText(nSelectedIndex, 0, szID, ServerManage::UserInfo::ID_LEN);
|
||||
|
||||
ServerManage::UserInfo userInfo;
|
||||
if(CToolUserManager::GetInstance().GetUserInfo(szID, userInfo))
|
||||
{
|
||||
CUserRegEditDlg EditDlg(&userInfo);
|
||||
|
||||
EditDlg.DoModal();
|
||||
UserListSet();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CServerToolUserManagementDlg::OnBnClickedUserDel()
|
||||
{
|
||||
int nSelectedIndex = m_ctrlUserInfoList.GetNextItem( -1, LVIS_SELECTED );
|
||||
|
||||
if( -1 != nSelectedIndex )
|
||||
{
|
||||
// 계정 삭제시에는 ID만 채워서 보냄
|
||||
ServerManage::UserInfo stDelUserInfo;
|
||||
|
||||
m_ctrlUserInfoList.GetItemText(nSelectedIndex, 0,
|
||||
stDelUserInfo.szID, ServerManage::UserInfo::ID_LEN);
|
||||
|
||||
CToolUserManager::GetInstance().DelUser(stDelUserInfo.szID);
|
||||
UserListSet();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
// ServerToolUserManagementDlg.h : 헤더 파일
|
||||
//
|
||||
#pragma once
|
||||
#include "afxwin.h"
|
||||
|
||||
// CServerToolUserManagementDlg 대화 상자
|
||||
class CServerToolUserManagementDlg : public CDialog
|
||||
{
|
||||
// 생성
|
||||
public:
|
||||
CServerToolUserManagementDlg(CWnd* pParent = NULL); // 표준 생성자
|
||||
|
||||
// 대화 상자 데이터
|
||||
enum { IDD = IDD_USERMANAGEMENTDLG };
|
||||
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원
|
||||
|
||||
|
||||
// 구현
|
||||
protected:
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
virtual BOOL OnInitDialog();
|
||||
|
||||
afx_msg void OnBnClickedUserReg();
|
||||
afx_msg void OnBnClickedUserEdit();
|
||||
afx_msg void OnBnClickedUserDel();
|
||||
|
||||
private:
|
||||
CListCtrl m_ctrlUserInfoList;
|
||||
|
||||
bool UserListSet();
|
||||
};
|
||||
152
Server/ManageTool/ManageSetup/dialog/UserRegEditDlg.cpp
Normal file
152
Server/ManageTool/ManageSetup/dialog/UserRegEditDlg.cpp
Normal file
@@ -0,0 +1,152 @@
|
||||
// AdminRegEditDlg.cpp : 구현 파일입니다.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "ManageSetup.h"
|
||||
|
||||
#include "UserRegEditDlg.h"
|
||||
#include "ServerToolUserManagementDlg.h"
|
||||
|
||||
#include <UserManage/ToolUserManageTable.h>
|
||||
#include ".\userregeditdlg.h"
|
||||
|
||||
|
||||
// AdminRegEditDlg 대화 상자입니다.
|
||||
|
||||
enum UserRegEditConst
|
||||
{
|
||||
REGISTER,
|
||||
EDIT
|
||||
};
|
||||
|
||||
|
||||
IMPLEMENT_DYNAMIC(CUserRegEditDlg, CDialog)
|
||||
|
||||
CUserRegEditDlg::CUserRegEditDlg(ServerManage::UserInfo* lpUserInfo,
|
||||
CWnd* pParent /*=NULL*/)
|
||||
: CDialog(CUserRegEditDlg::IDD, pParent)
|
||||
, m_szTitleName( _T("") )
|
||||
, m_szGroupName( _T("") )
|
||||
, m_strTempUserID(_T(""))
|
||||
, m_strUserName(_T(""))
|
||||
, m_strUserPass(_T(""))
|
||||
, m_strUserIP(_T(""))
|
||||
, m_usUserLevel(CToolUserManager::MONITORING)
|
||||
, m_usMode(REGISTER)
|
||||
{
|
||||
if(0 != lpUserInfo)
|
||||
{
|
||||
in_addr addr;
|
||||
addr.S_un.S_addr = lpUserInfo->dwIP;
|
||||
|
||||
m_strTempUserID.SetString(lpUserInfo->szID);
|
||||
m_strUserName.SetString(lpUserInfo->szFullName);
|
||||
m_strUserPass.SetString(lpUserInfo->szPassword);
|
||||
m_strUserIP.SetString(inet_ntoa(addr));
|
||||
|
||||
m_usUserLevel = lpUserInfo->usAdminLevel;
|
||||
m_usMode = EDIT;
|
||||
}
|
||||
}
|
||||
|
||||
CUserRegEditDlg::~CUserRegEditDlg()
|
||||
{
|
||||
}
|
||||
|
||||
void CUserRegEditDlg::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
||||
DDX_Text(pDX, IDC_GROUPNAME_EDIT, m_szGroupName);
|
||||
DDX_Text(pDX, IDC_USERNAME, m_strUserName);
|
||||
DDX_Text(pDX, IDC_USERPASS, m_strUserPass);
|
||||
DDX_Text(pDX, IDC_USERIP, m_strUserIP);
|
||||
|
||||
DDX_Control(pDX, IDC_USERLV, m_ctrlUserLV);
|
||||
DDX_Control(pDX, IDC_USERID, m_strUserID);
|
||||
}
|
||||
|
||||
|
||||
BEGIN_MESSAGE_MAP(CUserRegEditDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_REGEDITOK_BTN, OnBnClickedRegeditokBtn)
|
||||
ON_BN_CLICKED(IDC_CANCEL, OnBnClickedCancel)
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
|
||||
// AdminRegEditDlg 메시지 처리기입니다.
|
||||
|
||||
BOOL CUserRegEditDlg::OnInitDialog()
|
||||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
m_ctrlUserLV.InsertString( CToolUserManager::MASTER, _T("MASTER") );
|
||||
m_ctrlUserLV.InsertString( CToolUserManager::GENERAL, _T("GENERAL") );
|
||||
m_ctrlUserLV.InsertString( CToolUserManager::MONITORING, _T("MONITORING") );
|
||||
|
||||
m_ctrlUserLV.SetCurSel(m_usUserLevel);
|
||||
|
||||
if(m_strTempUserID.IsEmpty())
|
||||
{
|
||||
SetWindowText( _T("Admin Registaration") );
|
||||
m_szGroupName = _T("New Admin Info");
|
||||
}
|
||||
else
|
||||
{
|
||||
m_strUserID.SetWindowText(m_strTempUserID);
|
||||
m_strUserID.SetReadOnly();
|
||||
|
||||
SetWindowText( _T("Admin Edit") );
|
||||
m_szGroupName = _T("Edit Admin Info");
|
||||
}
|
||||
|
||||
UpdateData( false );
|
||||
return true;
|
||||
}
|
||||
|
||||
void CUserRegEditDlg::OnBnClickedRegeditokBtn()
|
||||
{
|
||||
UpdateData( true );
|
||||
|
||||
ServerManage::UserInfo stNewUserInfo;
|
||||
|
||||
m_strUserID.GetWindowText(m_strTempUserID);
|
||||
|
||||
// 수정 또는 등록 할 운영자 정보 수집
|
||||
_snprintf(stNewUserInfo.szID,
|
||||
ServerManage::UserInfo::ID_LEN - 1, "%s", m_strTempUserID); // 운영자 ID
|
||||
stNewUserInfo.szID[ServerManage::UserInfo::ID_LEN - 1] = 0;
|
||||
|
||||
_snprintf(stNewUserInfo.szFullName,
|
||||
ServerManage::UserInfo::NAME_LEN - 1, "%s", m_strUserName ); // 운영자 이름
|
||||
stNewUserInfo.szFullName[ServerManage::UserInfo::NAME_LEN - 1] = 0;
|
||||
|
||||
stNewUserInfo.dwIP = inet_addr(m_strUserIP); // 운영자 IP
|
||||
stNewUserInfo.usAdminLevel = m_ctrlUserLV.GetCurSel(); // 운영자 레벨
|
||||
|
||||
_snprintf(stNewUserInfo.szPassword,
|
||||
ServerManage::UserInfo::PASS_LEN - 1, "%s", m_strUserPass ); // 운영자 패스워드
|
||||
stNewUserInfo.szPassword[ServerManage::UserInfo::PASS_LEN - 1] = 0;
|
||||
|
||||
if( m_usMode == REGISTER)
|
||||
{
|
||||
if(!CToolUserManager::GetInstance().AddUser(stNewUserInfo))
|
||||
{
|
||||
AfxMessageBox("Add user error!");
|
||||
}
|
||||
}
|
||||
else if( m_usMode == EDIT )
|
||||
{
|
||||
if(!CToolUserManager::GetInstance().ModifyUser(stNewUserInfo))
|
||||
{
|
||||
AfxMessageBox("Modify user error!");
|
||||
}
|
||||
}
|
||||
|
||||
OnOK();
|
||||
}
|
||||
|
||||
void CUserRegEditDlg::OnBnClickedCancel()
|
||||
{
|
||||
OnCancel();
|
||||
}
|
||||
|
||||
53
Server/ManageTool/ManageSetup/dialog/UserRegEditDlg.h
Normal file
53
Server/ManageTool/ManageSetup/dialog/UserRegEditDlg.h
Normal file
@@ -0,0 +1,53 @@
|
||||
|
||||
#pragma once
|
||||
#include "afxcmn.h"
|
||||
#include "afxwin.h"
|
||||
|
||||
// forward decl.
|
||||
namespace ServerManage
|
||||
{
|
||||
struct UserInfo;
|
||||
};
|
||||
|
||||
// AdminRegEditDlg 대화 상자입니다.
|
||||
|
||||
class CUserRegEditDlg : public CDialog
|
||||
{
|
||||
DECLARE_DYNAMIC(CUserRegEditDlg)
|
||||
|
||||
public:
|
||||
|
||||
CUserRegEditDlg(ServerManage::UserInfo* lpUserInfo,
|
||||
CWnd* pParent = NULL); // 표준 생성자입니다.
|
||||
virtual ~CUserRegEditDlg();
|
||||
|
||||
// 대화 상자 데이터입니다.
|
||||
enum { IDD = IDD_USERREGEDITDLG };
|
||||
|
||||
protected:
|
||||
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 지원입니다.
|
||||
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
||||
virtual BOOL OnInitDialog();
|
||||
|
||||
private:
|
||||
|
||||
afx_msg void OnBnClickedRegeditokBtn();
|
||||
afx_msg void OnBnClickedCancel();
|
||||
|
||||
CString m_szTitleName; // 다이얼로그 타이틀 바 캡션
|
||||
CString m_szGroupName; // 다이얼로그 내 그룹박스 캡션
|
||||
|
||||
CEdit m_strUserID;
|
||||
CString m_strTempUserID;
|
||||
CString m_strUserName;
|
||||
CString m_strUserIP;
|
||||
CComboBox m_ctrlUserLV;
|
||||
CString m_strUserPass;
|
||||
|
||||
unsigned short m_usUserLevel;
|
||||
unsigned short m_usMode;
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user