Files
Client/Server/ToolProject/AuthDBManager/UserList.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

241 lines
7.4 KiB
C++

// UserList.cpp : implementation file
//
#include "stdafx.h"
#include "AuthDBManager.h"
#include "UserList.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CUserList
CUserList::CUserList()
{
int Counter;
char FieldName[256];
CAuthDBManagerApp* pAppWnd = (CAuthDBManagerApp*)AfxGetApp();
for(Counter = 0; Counter < 14; Counter++)
{
LoadString(pAppWnd->m_Language, IDS_F1 + Counter, FieldName, 256);
strcpy(m_FieldName[Counter], FieldName);
}
for(Counter = 0; Counter < 2; Counter++)
{
LoadString(pAppWnd->m_Language, IDS_S1 + Counter, FieldName, 256);
strcpy(m_Select[Counter], FieldName);
}
}
CUserList::~CUserList()
{
}
BEGIN_MESSAGE_MAP(CUserList, CListCtrl)
//{{AFX_MSG_MAP(CUserList)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
ON_WM_LBUTTONDBLCLK()
ON_WM_HSCROLL()
ON_WM_VSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CUserList::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
CListViewControl::OnCustomDraw(pNMHDR, pResult);
}
void CUserList::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CListViewControl::OnLButtonDblClk(nFlags, point);
}
void CUserList::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
CListViewControl::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CUserList::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
CListViewControl::OnVScroll(nSBCode, nPos, pScrollBar);
}
//Interface////////////////////////////////////////////////////////////////////////////////////
//
// SetColumn [ public ]
// - 테이블 컬럼 세팅
//
// Parameter :
// 1st : 컬럼 정보
//
// Return:
// 성공시 true
//
///////////////////////////////////////////////////////////////////////////////////////////////
bool CUserList::SetColumn(void)
{
DWORD ExStyle = LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, ExStyle);
DWORD Style = GetWindowLong(m_hWnd, GWL_STYLE);
Style |= LVS_EDITLABELS;
if (!SetWindowLong(m_hWnd, GWL_STYLE, Style))
return false;
CStringList StringList;
int IndexCounter = 0;
SetColumnType(IndexCounter, CT_NORMAL);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 4 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
SetColumnType(IndexCounter, CT_COMBO);
StringList.AddTail(m_Select[0]);
StringList.AddTail(m_Select[1]);
SetColumnStringList(IndexCounter, StringList);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 5 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 10 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 7 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 30 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 10 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 10 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 15 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 8 * 10);
SetColumnType(IndexCounter, CT_EDIT);
InsertColumn(IndexCounter, m_FieldName[IndexCounter++], LVCFMT_CENTER, 16 * 10);
return true;
}
//Interface////////////////////////////////////////////////////////////////////////////////////
//
// AddUserRow [ public ]
// - 줄 추가
//
// Parameter :
// 1st : 컬럼 정보
//
// Return:
// 성공시 true
//
///////////////////////////////////////////////////////////////////////////////////////////////
bool CUserList::AddUserRow(LPSELECT_AUTHUSER_TABLE UserTable_In)
{
CString strItem;
int Counter = 1;
int Index;
Index = GetItemCount();
strItem.Format("%d", UserTable_In->UID);
InsertItem(Index, strItem);
strItem.Format("%s", UserTable_In->AuthID);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->AuthPW);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->Name);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", m_Select[UserTable_In->Sex]);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->Birth);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->IDNumber);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->ZipCode);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->Address);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->Mobile);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->Phone);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->Email);
SetItemText(Index, Counter++, strItem);
strItem.Format("%s", UserTable_In->Job);
SetItemText(Index, Counter++, strItem);
strItem.Format("%04d/%02d/%02d %02d:%02d:%02d", UserTable_In->Reg_Date.Year, UserTable_In->Reg_Date.Month, UserTable_In->Reg_Date.Day, UserTable_In->Reg_Date.Hour, UserTable_In->Reg_Date.Minute, UserTable_In->Reg_Date.Second);
SetItemText(Index, Counter++, strItem);
return true;
}
bool CUserList::GetUserRow(unsigned long Item_In, LPUPDATE_AUTHUSER_TABLE Table_Out)
{
int Counter = 0;
char strItemText[256];
CString DateText, YearText, MonthText, DayText, HourText, MinuteText, SecondText;
GetItemText(Item_In, Counter++, strItemText, 256);
Table_Out->UID = atoi(strItemText);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->AuthID, strItemText, 16);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->AuthPW, strItemText, 16);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->Name, strItemText, 16);
GetItemText(Item_In, Counter++, strItemText, 256);
if(!strcmp(strItemText, m_Select[0]))
Table_Out->Sex = 0;
else
Table_Out->Sex = 1;
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->Birth, strItemText, 20);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->IDNumber, strItemText, 15);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->ZipCode, strItemText, 12);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->Address, strItemText, 80);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->Mobile, strItemText, 20);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->Phone, strItemText, 20);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->Email, strItemText, 50);
GetItemText(Item_In, Counter++, strItemText, 256);
strncpy(Table_Out->Job, strItemText, 20);
GetItemText(Item_In, Counter++, strItemText, 256);
return true;
}