일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MFC 예제
- 포트폴리오
- 실습
- ListBox
- Tipsware
- C++
- SSG
- 미가공
- Time
- 핵심 요약
- tips강좌
- C언어
- 별찍기
- MyTread
- 유료강좌
- 마이크로소프트
- do it c
- mysql
- mfc 실습
- 김성엽
- MyThread
- C
- win32
- 충무창업큐브
- 정보처리기사
- 도움말
- visual
- MFC
- 정처기 독학
- linux
- Today
- Total
목록ownerdraw (3)
History

이번에 실습한 예제는 리스트 박스로 성적을 처리하는 프로그램을 제작했다. 이 프로그램에서 입력해야 하는 란은 이름, 학번, 국어 성적, 영어 성적, 수학 성적이 있으며 점수 3개를 총합하여 평균 점수를 옆에 그래프로 시각적 표현을 시켰다. 또한 매번 성적을 입력할 때마다 성적의 등 수가 나오며, 등 수는 높은 점수가 나오면 현재 리스트 박스에 있는 모든 항목의 총점을 비교하여 등 수를 자동으로 조정할 수 있게 만들었다. 인터페이스는 MFC 기본 화면이 옛날 것의 느낌이 나기 때문에 STATIC, EDIT, BUTTON, LISTBOX의 모든 Owner-Draw를 적용하여 인터페이스를 개선했다. 기능은 간단하게 추가, 변경, 삭제가 있다. -추가 기능은 Edit에 있는 항목을 Listbox에 추가한다. 예..

저번 게시글에 이어서 ListBox안에 있는 항목 옮기는 프로그램을 OwnerDraw를 사용해서 리스트 박스에 있는 인터페이스를 바꿔보았다. 이 프로그램도 위로 버튼이 눌리면 현재 클릭된 항목이 위로 움직이게 구성되어 있고, 아래 버튼을 누르면 현재 클릭한 항목이 아래로 내려간다. 각 항목의 index는 현재 item의 개수에 맞춰서 해야 하기 때문에 조건을 넣어줘야 프로그램이 죽지 않고 잘 동작한다. 일반 리스트 박스와 다른 점은 GetIDlgtemPtr함수를 이용해서 값을 변경해주었다.

이번 실습은 step2 내용을 클래스화 하는 과정을 진행했다. 클래스의 이름은 TW_ListBox로 추가했고, 기존 dlg헤더 파일에 새로 추가한 클래스를 상속받아서 코드를 작성했다. 이 코드는 MFC기반이 아닌 Win32기반 HDC형태로 작업했다. 클래스화를 진행하면 나중에 코드를 정리하여 재사용 가능한 클래스로 사용할 수 있기 때문에 차후 실무에서 많이 쓰일 기술로 보인다. 외형은 기존과 동일하다. 아직 혼자서 클래스 구분을 하기에는 실력이 부족하여 실습을 많이 해야할 것 같다. 다음에는 step_4 실습을 하겠다.