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

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

아래와 같이 버튼에 마우스 오버가 되었을 때 클릭을 하지 않아도 버튼의 제목을 변경하는 예제이다. 버튼은 이벤트 처리기에서 HOTITEMCHANGE라는 이벤트를 제공하기 때문에 쉽게 구현할 수 있다.

버튼 Owner_Draw를 응용 실습을 진행했다. 하나의 버튼에 있는 글씨를 왼쪽으로 다시 그리고 오른쪽에는 on off 기능을 넣어서 한번 클릭할 때마다 on off의 색상이 토글 되도록 만들었고, on이 될 때마다 버튼에 있는 모양들이 출력이 된다.

저번 게시글에 이어서 ListBox안에 있는 항목 옮기는 프로그램을 OwnerDraw를 사용해서 리스트 박스에 있는 버튼 인터페이스를 바꿔보았다. 확인과 취소 버튼은 비교를 위해서 바꾸지도 않았다. 기능은 저번 게시물에 올렸던 것과 같다.

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

이번 실습은 버튼을 이용하여 ListBox의 항목을 움직이는 실습을 진행한다. 위로 버튼이 눌리면 현재 클릭된 항목이 위로 움직이게 구성되어 있고, 아래 버튼을 누르면 현재 클릭한 항목이 아래로 내려간다. 각 항목의 index는 현재 item의 개수에 맞춰서 해야 하기 때문에 조건을 넣어줘야 프로그램이 죽지 않고 잘 동작한다.
지금까지 개념을 설명하면서 쌓아온 실력을 실습해보는 시간이다. 아래 코드는 자신이 원하는 비트 번지를 0으로 바꿀 수 있는 함수이다. unsigned char ResetBit(unsigned char dest_data,unsigned char bit_num) //자신이 원하는 비트 번지를 바꾸는 함수 { if (bit_num bit_num; } return bit_state; } int main() { unsigned char data = 0x75; unsigned char bit_state; int i; printf("%X->", data); for ( i = 0; i < 8; i++){ //전체 비트를 바꾸기 위해 반복문 8번을 돌린다. bit_state = GetBit(data, 7 -i); //최..

*비트 연산자란? 비트 연산자는 비트 단위로 AND, OR, NOT, XOR 연산을 수행한다. AND(&) 연산- (A=A&B)==(A&=B) - 두 값을 비트 단위로 AND연산을 수행. - 두 비트 값이 1일 때만 1을 반환. - 둘 중 하나의 비트 값이 0이면 0을 반환 0000 1111(0x0F) & 0011 1100(0x3C) ----------------- 0000 1100(0x0C) OR(|) 연산- (A=A|B)==(A|=B) - 두 값을 비트 단위로 OR 연산을 수행. - 둘 중 하나의 비트가 1이면 1을 반환. - 둘 다 0인 비트가 있을 때 0을 반환 0000 1111(0x0F) | 0011 1100(0x3C) ----------------- 0011 1111(0x3F) NOT(~) 연..