// SkillList.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "GameDBTool.h" #include #include "SkillList.h"" // CSkillList char g_SkillField[3][20] = { "Skill ID", "Lock", "Level" }; IMPLEMENT_DYNAMIC(CSkillList, CListCtrl) CSkillList::CSkillList() { } CSkillList::~CSkillList() { } BEGIN_MESSAGE_MAP(CSkillList, CListCtrl) //{{AFX_MSG_MAP(CUserList) ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw) ON_NOTIFY_REFLECT(LVN_ENDLABELEDIT, OnEndLableEdit) ON_WM_LBUTTONDBLCLK() ON_WM_HSCROLL() ON_WM_VSCROLL() //}}AFX_MSG_MAP END_MESSAGE_MAP() void CSkillList::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult) { CListViewControl::OnCustomDraw(pNMHDR, pResult); } void CSkillList::OnEndLableEdit(NMHDR* pNMHDR, LRESULT* pResult) { CListViewControl::OnEndLableEdit(pNMHDR, pResult); } void CSkillList::OnLButtonDblClk(UINT nFlags, CPoint point) { CListViewControl::OnLButtonDblClk(nFlags, point); } void CSkillList::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default CListViewControl::OnHScroll(nSBCode, nPos, pScrollBar); } void CSkillList::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default CListViewControl::OnVScroll(nSBCode, nPos, pScrollBar); } // CSkillList ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. //Interface//////////////////////////////////////////////////////////////////////////////////// // // SetColumn [ public ] // - Å×À̺í Ä÷³ ¼¼ÆÃ // // Parameter : // 1st : Ä÷³ Á¤º¸ // // Return: // ¼º°ø½Ã true // /////////////////////////////////////////////////////////////////////////////////////////////// bool CSkillList::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(0, CT_EDIT); InsertColumn(0, g_SkillField[0], LVCFMT_CENTER, 5 * 20 + 10); SetColumnType(1, CT_EDIT); InsertColumn(1, g_SkillField[1], LVCFMT_CENTER, 3 * 20 + 10); SetColumnType(2, CT_EDIT); InsertColumn(2, g_SkillField[2], LVCFMT_CENTER, 3 * 20 + 10); return true; } bool CSkillList::AddSkillRows(LPSKILL Skill_In) { CString strItem; int Counter = 1; int Index; DeleteAllItems(); for(Index = 0; Index < Skill_In->wSlotNum; Index++, Counter = 1) { strItem.Format("0x%04x", Skill_In->SSlot[Index].SKILLINFO.wSkill); InsertItem(Index, strItem); strItem.Format("%d", Skill_In->SSlot[Index].SKILLINFO.cLockCount); SetItemText(Index, Counter++, strItem); strItem.Format("%d", Skill_In->SSlot[Index].SKILLINFO.cSkillLevel); SetItemText(Index, Counter++, strItem); } return true; } bool CSkillList::GetSkillRows(LPSKILL Skill_Out) { char strItemText[256]; int Counter = 0; int Index; int Slot = GetItemCount(); unsigned short Skill; int Lock, Level; int SkillNum = 0; ZeroMemory(Skill_Out, sizeof(SKILL)); for(Index = 0; Index < Slot; Index++, Counter = 0) { GetItemText(Index, Counter++, strItemText, 256); Skill = Math::Convert::StrToHex16(strItemText); GetItemText(Index, Counter++, strItemText, 256); Lock = atoi(strItemText); GetItemText(Index, Counter++, strItemText, 256); Level = atoi(strItemText); Skill_Out->SSlot[Index].SKILLINFO.wSkill = Skill; Skill_Out->SSlot[Index].SKILLINFO.cLockCount = Lock; Skill_Out->SSlot[Index].SKILLINFO.cSkillLevel = Level; SkillNum = SkillNum + Lock * (CSkillMgr::MAX_SKILL_LEVEL - 1) + Level; } Skill_Out->wSkillNum = SkillNum; Skill_Out->wSlotNum = Index; return true; }