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>
241 lines
7.4 KiB
C++
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;
|
|
}
|