Files
Client/Server/AdminTool/AdminToolClient/TAdminUseLogDlg.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

204 lines
6.8 KiB
C++

// TAdminUseLogDlg.cpp : 구현 파일입니다.
//
#include "stdafx.h"
#include "AdminToolClient.h"
#include "TAdminUseLogDlg.h"
#include "WindowMgr.h"
#include "TAdminManagementDlg.h"
#include "PacketManager.h"
#include "GlobalFunctions.h"
// CTAdminUseLogDlg 대화 상자입니다.
IMPLEMENT_DYNAMIC(CTAdminUseLogDlg, CDialog)
CTAdminUseLogDlg::CTAdminUseLogDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTAdminUseLogDlg::IDD, pParent)
, m_strTAdminUseLogReason(_T(""))
, m_strTAdminDetailUseLogBeforeEdit(_T(""))
, m_strTAdminDetailUseLogAfterEdit(_T(""))
, m_strAccount(_T(""))
, m_strTAdminName(_T(""))
, m_strTAdminLV(_T(""))
, m_strTAdminRegIP(_T(""))
, m_strTAdminRegDate(_T(""))
{
}
CTAdminUseLogDlg::~CTAdminUseLogDlg()
{
}
void CTAdminUseLogDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TADMINUSELOGLIST, m_ctrlTAdminUseLogList);
DDX_Control(pDX, IDC_TADMINDETAILUSELOGLIST, m_ctrlTAdminDetailUseLogList);
DDX_Text(pDX, IDC_TADMIN_ACCOUNT_NAME, m_strAccount);
DDX_Text(pDX, IDC_TADMIN_NAME, m_strTAdminName);
DDX_Text(pDX, IDC_TADMIN_LV, m_strTAdminLV);
DDX_Text(pDX, IDC_TADMIN_REG_IP, m_strTAdminRegIP);
DDX_Text(pDX, IDC_TADMIN_REG_DATE, m_strTAdminRegDate);
DDX_Text(pDX, IDC_TADMINUSELOGREASON, m_strTAdminUseLogReason);
DDX_Text(pDX, IDC_TADMINDETAILUSELOGBEFOREEDIT, m_strTAdminDetailUseLogBeforeEdit);
DDX_Text(pDX, IDC_TADMINDETAILUSELOGAFTEREDIT, m_strTAdminDetailUseLogAfterEdit);
}
BEGIN_MESSAGE_MAP(CTAdminUseLogDlg, CDialog)
ON_WM_CTLCOLOR()
ON_WM_DESTROY()
ON_NOTIFY(LVN_ITEMCHANGED, IDC_TADMINUSELOGLIST, OnLvnItemchangedTadminuseloglist)
ON_NOTIFY(LVN_ITEMCHANGED, IDC_TADMINDETAILUSELOGLIST, OnLvnItemchangedTadmindetailuseloglist)
END_MESSAGE_MAP()
// CTAdminUseLogDlg 메시지 처리기입니다.
BOOL CTAdminUseLogDlg::OnInitDialog()
{
CDialog::OnInitDialog();
INSERT_WINDOW(IDD_TADMINUSELOGDLG, this);
m_ctrlTAdminUseLogList.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
m_ctrlTAdminUseLogList.SetBkColor( COLORREF RGB( 255, 254, 217) );
m_ctrlTAdminUseLogList.SetTextBkColor( COLORREF RGB( 255, 254, 217) );
m_ctrlTAdminDetailUseLogList.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_FLATSB );
m_ctrlTAdminDetailUseLogList.SetBkColor( COLORREF RGB( 255, 254, 217) );
m_ctrlTAdminDetailUseLogList.SetTextBkColor( COLORREF RGB( 255, 254, 217) );
m_ctrlTAdminUseLogList.InsertColumn(0, GetLocalString("LOG_NUM"), LVCFMT_LEFT, 80);
m_ctrlTAdminUseLogList.InsertColumn(1, GetLocalString("LOGIN_TIME"), LVCFMT_LEFT, 160);
m_ctrlTAdminUseLogList.InsertColumn(2, GetLocalString("LOGOUT_TIME"), LVCFMT_LEFT, 160);
m_ctrlTAdminUseLogList.InsertColumn(3, GetLocalString("ADMIN_IP"), LVCFMT_LEFT, 120);
m_ctrlTAdminDetailUseLogList.InsertColumn(0, GetLocalString("DETAIL_LOG_NUM"), LVCFMT_LEFT, 100);
m_ctrlTAdminDetailUseLogList.InsertColumn(1, GetLocalString("EDIT_TIME"), LVCFMT_LEFT, 140);
m_ctrlTAdminDetailUseLogList.InsertColumn(2, GetLocalString("EDIT_TYPE"), LVCFMT_LEFT, 70);
RequestLogList(); // 선택계정의 로그리스트를 서버에 요청한다
FillSelectAdminInfo(); // 선택 된 계정의 정보를 표시
SetWindowText(GetLocalString("IDD_TADMINUSELOGDLG"));
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_01, "IDC_TADMINUSELOG_01");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_02, "IDC_TADMINUSELOG_02");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_03, "IDC_TADMINUSELOG_03");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_04, "IDC_TADMINUSELOG_04");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_05, "IDC_TADMINUSELOG_05");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_06, "IDC_TADMINUSELOG_06");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_07, "IDC_TADMINUSELOG_07");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_08, "IDC_TADMINUSELOG_08");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_09, "IDC_TADMINUSELOG_09");
SetUIString(this->m_hWnd, IDC_TADMINUSELOG_10, "IDC_TADMINUSELOG_10");
SetUIString(this->m_hWnd, IDC_TADMINUSELOGREASONEDIT, "IDC_TADMINUSELOGREASONEDIT");
return TRUE;
}
void CTAdminUseLogDlg::OnDestroy()
{
ERASE_WINDOW( IDD_TADMINUSELOGDLG );
CDialog::OnDestroy();
}
CDialog* CTAdminUseLogDlg::GetAdminMgrDlg( )
{
return static_cast< CDialog* >( GetParent( ) );
}
CListCtrl* CTAdminUseLogDlg::GetAdminMgrList( )
{
return static_cast< CListCtrl* >( GetAdminMgrDlg()->GetDlgItem( IDC_TADMINLIST ) );
}
void CTAdminUseLogDlg::FillSelectAdminInfo()
{
CListCtrl* lpToolAdminList = GetAdminMgrList();
int nIndex = lpToolAdminList->GetNextItem( -1, LVIS_SELECTED );
TCHAR szTemp[20];
// 툴 운영자 리스트에서 선택된 정보 얻어오기
lpToolAdminList->GetItemText( nIndex, 0, szTemp, sizeof(szTemp) );
m_strAccount = szTemp; // 운영 계정
lpToolAdminList->GetItemText( nIndex, 1, szTemp, sizeof(szTemp) );
m_strTAdminName = szTemp; // 운영자 이름
lpToolAdminList->GetItemText( nIndex, 2, szTemp, sizeof(szTemp) );
m_strTAdminLV = szTemp; // 운영자 레벨
lpToolAdminList->GetItemText( nIndex, 3, szTemp, sizeof(szTemp) );
m_strTAdminRegIP = szTemp; // 등록 IP
lpToolAdminList->GetItemText( nIndex, 4, szTemp, sizeof(szTemp) );
m_strTAdminRegDate = szTemp; // 등록일
UpdateData( FALSE );
}
void CTAdminUseLogDlg::RequestLogList( )
{
TCHAR szAccount[ 20 ];
CDialog* AdminMgrDlg = static_cast< CDialog* >( GetParent( ) );
CListCtrl* RegAdminz = static_cast< CListCtrl* >( AdminMgrDlg->GetDlgItem( IDC_TADMINLIST ) );
int Index = RegAdminz->GetNextItem( -1, LVIS_SELECTED );
RegAdminz->GetItemText( Index, 0, szAccount, sizeof( szAccount ) ); // 선택한 관리자의 계정을 가져온다.
CPacketMgr::GetInstance()->SendLogList( szAccount );
}
CListCtrl* CTAdminUseLogDlg::GetLogList( )
{
return static_cast< CListCtrl* >( GetDlgItem( IDC_TADMINUSELOGLIST ) );
}
// CTAdminUseLogDlg 이벤트 처리입니다.
// 사용 내역 리스트 아이템 선택
void CTAdminUseLogDlg::OnLvnItemchangedTadminuseloglist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
UpdateData();
int Index = m_ctrlTAdminUseLogList.GetNextItem( -1, LVIS_SELECTED );
int LogID;
TCHAR szTmp[ 50 ];
if( Index != -1 )
{
m_ctrlTAdminUseLogList.GetItemText( Index, 0, szTmp, sizeof( szTmp ) );
LogID = _ttoi( szTmp );
// 상세로그 리퀘스트....
CPacketMgr::GetInstance()->SendDetailLog( LogID );
m_ctrlTAdminDetailUseLogList.DeleteAllItems( );
}
*pResult = 0;
}
// 상세 사용 내역 리스트 아이템 선택
void CTAdminUseLogDlg::OnLvnItemchangedTadmindetailuseloglist(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
int Index = m_ctrlTAdminDetailUseLogList.GetNextItem( -1, LVIS_SELECTED );
int DetailLogID;
TCHAR szTmp[ 50 ];
if( Index != -1 )
{
m_ctrlTAdminDetailUseLogList.GetItemText( Index, 0, szTmp, sizeof( szTmp ) );
DetailLogID = _ttoi( szTmp );
CPacketMgr::GetInstance()->SendBeforeAfter( DetailLogID );
}
*pResult = 0;
}