Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

승쨩개발공부

[MFC] 유닛툴3 본문

MFC

[MFC] 유닛툴3

Unknowns 2022. 5. 10. 02:49

자 다시 유닛툴 다이얼로그로 돌아와서

리스트 박스 우클릭후 메시지를 하나 추가해주자

 

OnListBox함수에

이름 문자열을 찾는 변수를 하나 CString 으로 잡아주고

임시변수 iSelect에 현재 리스트박스에서 선택된 목록의 인덱스를 반환하는 함수를 넣어준다

현재 인덱스에 해당하는 문자열을 리스트박스로 부터 얻어오고

iter에 맵컨테이너에 저장되어잇는 값들을 찾는다

end면 못찾은거니 함수종료시키고

맴버변수에 맵컨테이너 value값을 넣어준다

 

 

 

 

그리고 실행시켜서

첫번쨰 이름 AAA, 체력 10, 공격력 10을 Add시키고

두번쨰 이름 BBB, 체력 20, 공격력 20을 Add시킨다

 

그리고 리스트박스에 들어있는 문자열을 누르면 그 문자열에 맞는 이름,체력,공격력이 바뀌게된다.

 

 

다시 유닛툴 다이얼로그로 돌아와서 직업도 설정하게 만들어보자.

Radio Button 으로 전사 마법사 도적 3가지 를 넣고

 

 

 

직업만 넣으면 심심하니 다크소울처럼 처음 시작할때 아이템 하나씩 선택할수있게 만들어보자

Check Box로 루비,다이아몬드,사파이어를 넣자

 

 

 

 

그리고 리스트박스 삭제,저장,불러오기를 만들어보자

 

 

 

그리고 다시 밑에 EditControl을 통해 이름을 입력하면 자동으로 리스트박스 체크가되는

FindData를 만들어보자

 

 

 

UnitTool.h에

찾기,삭제,저장,불러오기 이벤트 처리를 해주고

맴버변수 FindName 을 선언해주고

Radio체크박스 Check체크박스 3개씩이니 배열 3개씩 잡아준다

 

 

 

 

각 ID값에 맞게 넣어주고 이벤트를 추가해준다

 

 

 

 

이제 직업,탄생석을 리스트박스에 맞는 문자열을눌렀을떄 체크되게 만들어보자

 

OnAdd함수에

 

이런식으로 비트연산해서 탄생석을 넣어준다

 

 

 

OnListBox함수에는

모든 버튼체크를 해제하고 value값을 찾아 OnAdd에 저장된값을 불러온다

 

그러면 이제 리스트박스 문자열에따라 직업과 탄생석도 같이 체크가 될것이다.

 

 

OnFindData에는

이런식으로 문자열 이름으로 모든 value값을 불러들인다

 

 

OnDelete에는

현재 리스트 박스에 선택된 목록의 인덱스를 iSelect에 저장해서

iSelet가 -1일때 함수를 종료하고

현재 인덱스에 해당하는 문자열을 리스트 박스로 부터 얻어와서

find로 찾고

end면 못찾았단뜻이니 함수를종료하고

찾았으면 Map에서 지우고

리스트박스 해당 인덱스의 목록을 지운다.

 

 

OnSaveData에는

CFileDialog : 파일 열기 또는 저장 작업에 필요한 대화상자를 생성하는 객체
1. TRUE(불러오기), FALSE(다른 이름으로 저장) 모드 지정
2. default 확장자명, 저장 시 확장자명을 명시해주지 않으면 현재 지정한 확장자명을 사용
3. 대화 상자에 표시될 최초 파일명
4. OFN_HIDEREADONLY(읽기 전용 체크박스 숨김 옵션) OFN_OVERWRITEPROMPT(중복 파일 저장 시 경고 메시지 띄움)
5. 대화 상자에 표시될 파일 형식 "콤보박스에 출력될 문자열 | 실제 사용할 필터링 문자열 ||"
6. 부모 윈도우 주소

 

문자열의 길이를 MAX_PATH만큼 잡아주고

현재 프로젝트의 경로를 얻어와

상대경로로 만들기 위해 맨 마지막 폴더명을 잘라낸다.

 

그리고 폴더명을 이어붙이고

 

대화상자를 실행해 문자열Key값과 아이템,직업,공격력,체력 value값을 저장시키고 핸들을 닫는다.

 

 

 

OnLoadData는

OnLoadData에
저장하기와 비슷한 맥락이니 붙여넣기 해준다

불러오기니까 TURE로 바꿔준다

DoModal 에 불러오기니까 읽어온 정보로만 맵컨테이너에
원소값을 채워줘야하니 지워준다

RestContent 
: ListBox목록을 초기화

GENRIC_WHIRTE가 아니라 GENERIC_READ로 읽어와야하기떄문에
바꿔준다

구조체 한덩어리 키값따로 value따로 

value저장햇던 순서대로 읽어들여야한다

dwByte가 0이면 읽어들일 데이터가 없다는뜻이니 조건넣어준다

 

저장 화면

 

 

불러오기 화면

 

 

아 그리고 ToolView화면이 늘리면 타일이 늘어나면서 피킹이 잘 안될수가있다

Terrain->Render에 Set_Ratio로 배율을 잡아주고

월드변환을 다시 넣자

'MFC' 카테고리의 다른 글

[MFC] PathFinder 1  (0) 2022.05.13
[MFC] 맵툴  (0) 2022.05.10
[MFC] 유닛툴2  (0) 2022.05.10
[MFC] 유닛툴1  (0) 2022.05.10
[MFC] 미니맵  (0) 2022.05.09