버튼 추가
if(m_tUnitTool.GetSafeHwnd() == nullptr)
m_tUnitTool.Create(IDD_CUnitTool);
m_tUnitTool.ShowWindow(SW_SHOW);
추가하면 버튼 클릭시 유닛틀 생성됨
유닛 다이얼로그에서 도구상자 -> 에딧컨트롤 생성
에딧컨트롤은 실행시 글을 입력받을수있음
우클릭 후 변수추가를 통해 변수 추가가능
두개의 에딧 컨트롤의 변수를 추가 한후 버튼을 추가 -> 버튼을 더블클릭시 클릭 이벤트 함수로 이동
void CUnitTool::OnBnClickedButton1()
{
UpdateData(true);
//UpdateData는 컨트롤과 변수의 값이 변경되면 갱신시켜주는 함수이다.
//인자가 true일경우 컨트롤의 값을 변수로 전송 하고 false일경우 반대로 변수의값을 컨트롤로 전송한다.
data2 = data1;
UpdateData(false);
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
}
7.스탯입력과 출력
typedef struct tagTexInfo
{
LPDIRECT3DTEXTURE9 pTexture;// HBITMAP와 비슷한 역할을 할 놈.
D3DXIMAGE_INFO tTexInfo;
}TEXINFO;
typedef struct tagTile
{
D3DXVECTOR3 vPos;
D3DXVECTOR3 vSize;
int iDrawID;
int iOption;
}TILE;
typedef struct tagUnitInfo
{
#ifdef _AFX
CString wstrName;
#else
wstring wstrName;
#endif // _AFX
int iAtt;
int iDef;
}UNITINFO;
구조체 헤더에 스탯을 저장할 UNITINFO정의
스태틱 테스트와 리스트 박스 버튼 에딧컨트롤을 적절히 배치
private:
map<CString, UNITINFO*> m_mapUnitInfo;
CUnitTool에 멤버 변수로 UNITINFO를 저장할 맵 추가
다음 Add 버튼 클릭시 입력한 정보로 INFO구조체를 만들어 맵에 넣어줌
void CUnitTool::OnBnClickedButton2()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
UpdateData(TRUE);
UNITINFO* pUnitInfo = new UNITINFO;
pUnitInfo->wstrName = m_wstrName;
pUnitInfo->iAtt = m_iAtt;
pUnitInfo->iDef = m_iDef;
m_mapUnitInfo.emplace(pUnitInfo->wstrName, pUnitInfo);
m_ListBox.AddString(pUnitInfo->wstrName);
UpdateData(FALSE);
}
void CUnitTool::OnLbnSelchangeList1()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
UpdateData(TRUE);
int iIndex = m_ListBox.GetCurSel();
CString wstrFindName = L"";
m_ListBox.GetText(iIndex, wstrFindName);
auto& iter = m_mapUnitInfo.find(wstrFindName);
if (iter == m_mapUnitInfo.end())
return;
m_wstrName = iter->second->wstrName;
m_iAtt = iter->second->iAtt;
m_iDef = iter->second->iDef;
UpdateData(FALSE);
}
리스트 박스는 맵에서 정보를 가져와 출력해줌