Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 미가공
- 충무창업큐브
- 실습
- 포트폴리오
- 마이크로소프트
- SSG
- do it c
- 유료강좌
- MFC 예제
- MyThread
- 정보처리기사
- 핵심 요약
- C++
- 별찍기
- ListBox
- 도움말
- 정처기 독학
- mfc 실습
- linux
- C언어
- C
- 별찍기 기초
- tips강좌
- 김성엽
- MFC
- Tipsware
- win32
- mysql
- MyTread
- Time
Archives
- Today
- Total
History
선 채우기 실습 본문
728x90
반응형
선 채우기 실습자료는 우선 2차원 배열로 구성되어있다. 2차원 배열은 백업할 배열과 상태를 담고 있는 배열 2가지로 구성했다. 또한 중첩 반복문을 이용해서 바탕이 되는 격자를 그린다. 격자는 OnPaint에서 Rectangle함수로 그렸다.
// (0:없음, 1:이동경로, 2: 파란색, 3:빨간색)
char m_state[Y_COUNT][X_COUNT];
// 편집 상태로 복구하기 위해 백업된 상태 정보
char m_backup_state[Y_COUNT][X_COUNT];
0은 아무 작업도 안 들어간 상태 1은 mousemove함수를 사용해서 마우스 왼쪽 버튼이 눌러진 상태라면 1(회색)을 대입했다.
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
OnLButtonDown과 OnRButtonDown을 클래스 마법사에서 추가한 후 각각 컨트롤 키가 같이 눌러진 상태라면 2(파란색), 3(빨간색)이 각각 m_state의 배열에 대입된다.
afx_msg void OnTimer(UINT_PTR nIDEvent);
마지막으로 시작 버튼을 눌렀을 때 m_state에 있던 배열을 m_backup_state배열에 memcpy함수로 복사를 한다. 그 후 OnTimer함수를 추가시킨 후 격자의 범위를 생각해서 상하 좌우로 색상을 채워간다.
728x90
반응형
'MFC > 개인 실습' 카테고리의 다른 글
베이지어 곡선 그리기 (0) | 2022.08.03 |
---|---|
MFC 예제 파일 정리 프로그램 만들기 실습1 (0) | 2022.07.23 |
육각형 퍼즐 만들기-가상 메모리(CImage) (0) | 2022.06.29 |
CImage_MFC 복습 2 (0) | 2022.05.21 |
CImage_MFC 복습 1 (0) | 2022.05.21 |
Comments