Files
Client/Server/AdminTool/AdminToolClient/TAdminEditDlg.cpp
LGram16 dd97ddec92 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>
2025-11-29 20:17:20 +09:00

250 lines
6.6 KiB
C++

// TAdminEditDlg.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "TAdminEditDlg.h"
#include "TAdminRegistrationDlg.h"
#include "PacketManager.h"
#include "WindowMgr.h"
#include "GlobalFunctions.h"
// CTAdminEditDlg 대화 상자입니다.
IMPLEMENT_DYNAMIC(CTAdminEditDlg, CDialog)
CTAdminEditDlg::CTAdminEditDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTAdminEditDlg::IDD, pParent)
, m_strTAdminLVEdit(_T(""))
, m_strTAdminIPEdit(_T(""))
, m_strTAdminPassEditOld(_T(""))
, m_strTAdminPassEditNew(_T(""))
, m_bTAdminLVEditChk(FALSE)
, m_bTAdminIPEditChk(FALSE)
, m_bTAdminPassEditChk(FALSE)
{
}
CTAdminEditDlg::~CTAdminEditDlg()
{
}
void CTAdminEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_CBString(pDX, IDC_TADMINLVEDIT, m_strTAdminLVEdit);
DDX_CBString(pDX, IDC_TADMINIPEDIT, m_strTAdminIPEdit);
DDX_Text(pDX, IDC_TADMINPASSEDITOLD, m_strTAdminPassEditOld);
DDX_Text(pDX, IDC_TADMINPASSEDITNEW, m_strTAdminPassEditNew);
DDX_Check(pDX, IDC_TADMINLVEDITCHK, m_bTAdminLVEditChk);
DDX_Check(pDX, IDC_TADMINIPEDITCHK, m_bTAdminIPEditChk);
DDX_Check(pDX, IDC_TADMINPASSEDITCHK, m_bTAdminPassEditChk);
DDX_Control(pDX, IDC_TADMINLVEDIT, m_ctrlTAdminLVCb);
DDX_Control(pDX, IDC_TADMINIPEDIT, m_ctrlTAdminIPEdit);
DDX_Control(pDX, IDC_TADMINPASSEDITOLD, m_ctrlTAdminPassEditOld);
DDX_Control(pDX, IDC_TADMINPASSEDITNEW, m_ctrlTAdminPassEditNew);
}
BEGIN_MESSAGE_MAP(CTAdminEditDlg, CDialog)
ON_BN_CLICKED(IDC_TADMINLVEDITCHK, OnBnClickedTadminlveditchk)
ON_BN_CLICKED(IDC_TADMINIPEDITCHK, OnBnClickedTadminipeditchk)
ON_BN_CLICKED(IDC_TADMINPASSEDITCHK, OnBnClickedTadminpasseditchk)
ON_BN_CLICKED(IDOK, OnBnClickedTAdminEdit)
ON_WM_CTLCOLOR()
ON_WM_DESTROY()
END_MESSAGE_MAP()
// CTAdminEditDlg 메시지 처리기입니다.
HBRUSH CTAdminEditDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
return hbr;
}
BOOL CTAdminEditDlg::OnInitDialog()
{
CDialog::OnInitDialog();
INSERT_WINDOW( IDD_TADMINEDITDLG, static_cast< CWnd* >( this ) );
SetAdminLevelCb(m_ctrlTAdminLVCb);
FillSelectAdminInfo();
// 해당 계정의 패스워드정보는 서버에 특별히 요청하자 ㅡ.ㅡ;
SetWindowText(GetLocalString("IDD_TADMINEDITDLG"));
SetUIString(this->m_hWnd, IDC_TADMINEDIT_01, "IDC_TADMINEDIT_01");
SetUIString(this->m_hWnd, IDC_TADMINEDIT_02, "IDC_TADMINEDIT_02");
SetUIString(this->m_hWnd, IDC_TADMINEDIT_03, "IDC_TADMINEDIT_03");
SetUIString(this->m_hWnd, IDC_TADMINEDIT_04, "IDC_TADMINEDIT_04");
SetUIString(this->m_hWnd, IDC_TADMINEDIT_05, "IDC_TADMINEDIT_05");
SetUIString(this->m_hWnd, IDC_TADMINEDIT_06, "IDC_TADMINEDIT_06");
SetUIString(this->m_hWnd, IDC_TADMINEDIT_07, "IDC_TADMINEDIT_07");
SetUIString(this->m_hWnd, IDC_TADMINLVEDITCHK, "IDC_TADMINLVEDITCHK");
SetUIString(this->m_hWnd, IDC_TADMINIPEDITCHK, "IDC_TADMINIPEDITCHK");
SetUIString(this->m_hWnd, IDC_TADMINPASSEDITCHK, "IDC_TADMINPASSEDITCHK");
return TRUE;
}
void CTAdminEditDlg::OnDestroy()
{
ERASE_WINDOW( IDD_TADMINEDITDLG );
CDialog::OnDestroy();
}
void CTAdminEditDlg::FillSelectAdminInfo( )
{
TCHAR szTmp[ 20 ];
GetSelectedID ( szTmp, sizeof( szTmp ) );
SetDlgItemText ( IDC_TADMINPASSEDITOLD5, szTmp );
GetSelectedName ( szTmp, sizeof( szTmp ) );
SetDlgItemText ( IDC_TADMINPASSEDITOLD4, szTmp );
GetSelectedLevel( szTmp, sizeof( szTmp ) );
SetDlgItemText ( IDC_TADMINPASSEDITOLD3, szTmp );
GetSelectedIP ( szTmp, sizeof( szTmp ) );
SetDlgItemText ( IDC_TADMINPASSEDITOLD2, szTmp );
}
// < 각 컨트롤 이벤트 처리 > ___________________________________________________________________________________________________
// 상위 Dialog에서 선택한 아이템의 Index를 가져온다.
CDialog* CTAdminEditDlg::GetAdminMgrDlg( )
{
return static_cast< CDialog* >( GetParent( ) );
}
CListCtrl* CTAdminEditDlg::GetAdminMgrList( )
{
return static_cast< CListCtrl* >( GetAdminMgrDlg( )->GetDlgItem( IDC_TADMINLIST ) );
}
int CTAdminEditDlg::GetAdminListIndex( )
{
CListCtrl* AdminList = GetAdminMgrList( );
return AdminList->GetNextItem( -1, LVIS_SELECTED ); // 선택한 놈의 인덱스를 반환 한다.
}
void CTAdminEditDlg::GetSelectedID( TCHAR* szID, int Length )
{
int Index = GetAdminListIndex( );
CListCtrl* AdminList = GetAdminMgrList( );
AdminList->GetItemText( Index, 0, szID, Length );
}
void CTAdminEditDlg::GetSelectedName( TCHAR* szName, int Length )
{
int Index = GetAdminListIndex( );
CListCtrl* AdminList = GetAdminMgrList( );
AdminList->GetItemText( Index, 1, szName, Length );
}
void CTAdminEditDlg::GetSelectedLevel( TCHAR* szLv, int Length )
{
int Index = GetAdminListIndex( );
CListCtrl* AdminList = GetAdminMgrList( );
AdminList->GetItemText( Index, 2, szLv, Length );
}
void CTAdminEditDlg::GetSelectedIP( TCHAR* szIP, int Length )
{
int Index = GetAdminListIndex( );
CListCtrl* AdminList = GetAdminMgrList( );
AdminList->GetItemText( Index, 3, szIP, Length );
}
// ( 체크박스 관련 )
void CTAdminEditDlg::OnBnClickedTadminlveditchk() // 레벨 수정 체크
{
UpdateData(TRUE);
m_ctrlTAdminLVCb.EnableWindow( m_bTAdminLVEditChk );
}
void CTAdminEditDlg::OnBnClickedTadminipeditchk() // IP 수정 체크
{
UpdateData(TRUE);
m_ctrlTAdminIPEdit.EnableWindow( m_bTAdminIPEditChk );
}
void CTAdminEditDlg::OnBnClickedTadminpasseditchk() // 패스워드 수정 체크
{
UpdateData(TRUE);
m_ctrlTAdminPassEditNew.EnableWindow( m_bTAdminPassEditChk );
}
// ( 버튼 관련 )
void CTAdminEditDlg::OnBnClickedTAdminEdit() // 정보 수정 버튼 클릭
{
CString szAccount;
GetDlgItemText( IDC_TADMINPASSEDITOLD5, szAccount );
if( m_bTAdminLVEditChk ) //레벨변경
{
CComboBox* Combo = static_cast< CComboBox* >( GetDlgItem( IDC_TADMINLVEDIT ) );
int Index = Combo->GetCurSel( );
Combo->GetLBText( Index, m_strTAdminLVEdit );
if( m_strTAdminLVEdit.GetLength( ) )
{
// 레벨 변경패킷을 보낸다.
CPacketMgr::GetInstance()->SendUpdateLevel( szAccount, m_strTAdminLVEdit );
}
else
{
AfxMessageBox(GetLocalString("MSG_0110"));
}
}
if( m_bTAdminIPEditChk ) //아이피 변경
{
GetDlgItemText( IDC_TADMINIPEDIT, m_strTAdminIPEdit );
if( m_strTAdminIPEdit.GetLength( ) )
{
// 아이피 변경패킷을 보낸다
CPacketMgr::GetInstance()->SendUpdateIP( szAccount, m_strTAdminIPEdit );
}
else
{
AfxMessageBox(GetLocalString("MSG_0111"));
}
}
if( m_bTAdminPassEditChk ) //패스워드 변경
{
GetDlgItemText( IDC_TADMINPASSEDITNEW, m_strTAdminPassEditNew );
if( m_strTAdminPassEditNew.GetLength( ) )
{
// 패스워드 변경 패킷을 보낸다
CPacketMgr::GetInstance()->SendUpdatePassword( szAccount, m_strTAdminPassEditNew );
}
else
{
AfxMessageBox(GetLocalString("MSG_0112"));
}
}
OnOK();
}