본문 바로가기

반응형

전자 공학/MFC

(14)
[MFC 독학하기] 14. MFC 응용 프로그램 만들기(2) 안녕하세요. 취업한 공대누나입니다. 오늘은 지난 시간에 이어 MFC 응용 프로그램 만들기를 마저 진행해보려고 합니다. 지난 시간에는 간단한 응용 프로그램을 만들었고 오늘은 소스 코드를 분석을 하는 시간입니다. 그럼 시작해보도록 하겠습니다. 1. 소스 코드 분석(2) GdnnProject.cpp 파일 먼저 살펴보도록 하겠습니다. 해당 소스 파일을 더블 클릭하여 열어줍니다. 모듈별로 중요하다고 생각되는 부분을 차례대로 보도록 하겠습니다. 1) 헤더파일 이후에 아래와 같은 소스가 있습니다. 이는 윈도우 메시지와 메시지 핸들러를 연결하기 위한 부분입니다. BEGIN_MESSAGE_MAP 매크로와 END_MESSAGE_MAP() 매크로가 클래스 구현 파일에 있어야지 윈도우 메시지와 메시지 핸들러를 연결할 수 있습..
[MFC 독학하기] 13. MFC 응용 프로그램 만들기(1) 안녕하세요. 취업한 공대누나입니다. 오늘은 지난 시간에 공부했던 것들을 바탕으로 간단한 MFC 응용프로그램 만들기를 해보도록 하겠습니다. 내용이 많아서 총 두 번으로 나누어 포스팅을 진행할 예정입니다. 오늘은 프로그램을 만들어보고 코드 리뷰를 조금 한 다음에 다음 시간에 본격적인 코드 리뷰를 하도록 하겠습니다. 하나하나 캡쳐해가며 할 예정이니 천천히 따라와주세요. 1. MFC 응용 프로그램 만들기 1) [새 프로젝트 만들기] 에서 [MFC 앱]을 선택하나 후 다음 버튼을 클릭합니다. 2) 프로젝트 이름을 적절하게 만들어주고 만들기 버튼을 클릭합니다. (저는 프로젝트 이름을 GdnnProject로 했습니다.) 3) [애플리케이션 종류]를 단일 문서로 설정한 후 문서/뷰 아키텍쳐 지원의 체크박스를 해제해준 ..
[MFC 독학하기] 12. 집합 클래스(2) 안녕하세요. 취업한 공대누나입니다. 오늘은 집합 클래스에 대한 스터디를 마저 해보려고 합니다. 집합 클래스가 처음이신 분들 혹은 이전 배열 클래스와 리스트 클래스에 대한 내용을 원하시는 분들은 아래 포스팅을 참고해주세요. 2021/01/25 - [전자 공학/MFC] - [MFC 독학하기] 11. 집합 클래스 (1) 그럼 시작해보도록 하겠습니다. 2. 리스트 클래스 지난 시간에는 리스트 클래스에 대한 기본 내용만을 다뤄보았습니다. 오늘은 리스트 순회에 대한 내용을 추가적으로 이야기 해보려고 합니다. 리스트 순회라는 것은 리스트의 시작점 또는 끝점부터 포인터를 따라가면서 리스트에 저장된 데이터를 접근하는 것을 말합니다. 시작점부터 그 다음 데이터를 따라가는 것을 전방향 순회 끝점부터 이전 데이터를 따라가는 ..
[MFC 독학하기] 11. 집합 클래스 (1) 안녕하세요. 취업한 공대누나입니다. 오늘은 MFC에서 집합 클래스에 대한 이야기를 해보려고 합니다. 집합 클래스는 배열, 연결 리스트와 같은 자료 구조를 편리하게 사용할 수 있도록 MFC에서 제공하는 클래스입니다. MFC에서 제공되는 배열 클래스는 크게 배열, 리스트, 맵 세종류가 있습니다. 1. 배열 클래스 아래 클래스는 afxtempl.h 헤더 파일이 필요합니다. 배열에 저장할 데이터 타입을 우리가 원하는대로 선택할 수 있습니다. 클래스 데이터 타입 CArray 우리가 결정 아래 클래스들은 afxcoll.h 헤더 파일이 필요합니다. 이는 데이터 타입을 미리 정해놓고 제공하는 것입니다. 클래스 데이터 타입 CByteArray Byte CWordArray Word CDWordArray Dword CUIn..
[MFC 독학하기] 10. CTime, CTimeSpan 클래스 안녕하세요. 취업한 공대누나입니다. 오늘은 MFC의 CTime 클래스와 CTimeSpan 클래스에 대해 알아보도록 하겠습니다. CTime 클래스는 절대적인 시간을 처리하고, CTimeSpan 클래스는 시간의 차이값을 처리하는 클래스입니다. 1. CTime Class 제일 기본적인 시간 클래스입니다. 하지만 초기에 구현된 클래스이기 때문에 1970년 이전과 2038년 이후의 시간을 처리하지 못합니다. 그 이전 혹은 이후의 시간범위 계산이 필요하면 CTime 클래스가 아닌 COleDateTime 클래스를 사용해야 합니다. GetCurrentTime 함수는 현재 시간을 반환 받아 가져오게 합니다. 여기서 time1 = CTime::GetCurrentTime();이렇게 되어 있는데 CTime :: 를 붙이지 않..
[MFC 독학하기] 9. CPoint, CRect, CSize 클래스 안녕하세요. 취업한 공대누나입니다. 오늘은 MFC의 주요 클래스들에 대해서 공부해보도록 하겠습니다. MFC를 공부하다보니 C++문법에 대한 내용이 너무 약한 것을 알게 되어 C++ 공부하는 카테고리륻 하나 만들어야겠다는 생각이 듭니다. ㅠㅠ 오늘 공부를 시작해보도록 하겠습니다. 우선 CPoint, CRect, CSize Class는 API에서 사용하는 구조체 타입인 POINT, RECT, SIZE에서 파생한 클래스입니다. 1. CPoint Class 2차원 좌표계의 점을 저장합니다. CPoint Class는 LONG 타입의 x, y를 멤버 변수로 가집니다. CPoint :: CPoint(int x, int y) 100과 200, 그리고 200과 300이라는 x좌표와 y좌표를 생성자 인자로 전달하였고 이를..
[MFC 독학하기] 7. 콘솔 응용프로그램 안녕하세요. 취업한 공대누나입니다. 오늘은 MFC 콘솔 응용 프로그램을 작성하는 공부를 해보도록 하겠습니다. 기존과 달리 메시지 구동 방식으로 프로그래밍 하는 것이 아닙니다. 테스트를 할 때 간단한 확인을 위하여 출력하는 구문들을 만드는 것입니다. 확인할 때 복잡하게 할 필요는 없으니까요 1. 콘솔 응용프로그램 만들기 우선 프로젝트를 만들어 보도록 하겠습니다. Visual studio를 실행시킨 뒤 새 프로젝트 만들기를 클릭합니다. Windows 데스크톱 마법사를 선택한 후 다음 버튼을 클릭합니다. 프로젝트 이름을 임의로 설정하고 만들기 버튼을 클릭합니다. 애플리케이션 종류는 콘솔 애플리케이션을 선택하고 MFC 헤더 옵션을 체크하고 확인 버튼을 클릭합니다. 아래 그림과 같은 소스 코드가 출력되는 것을 확..
[MFC 독학하기] 6. HelloMFC 예제 분석하기(2) - CMainFrame, MessageBox 안녕하세요. 취업한 공대누나입니다. 오늘은 지난시간에 이어서 HelloMFC 예제를 마저 분석해보도록 하겠습니다. 1. 클래스 선언부 및 정의부 2) CFrameWnd CFrameWnd는 메인 윈도우의 기능을 제공합니다. (1) Create() 우선 Create함수를 이용하여 윈도우를 생성합니다. 첫번째 인자에 NULL을 전달하게 되면, MFC 내부적으로 등록된 윈도우 클래스가 사용이됩니다. 두번째 인자는 생성되는 윈도우 타이틀바에 표시될 윈도우 이름입니다. 아래 왼쪽 그림에서 보면 타이틀에 HelloMFC가 출력된 것을 볼 수 있습니다. (2) OnPaint() OnPaint 함수는 WM_PAINT 메시지를 처리하는 역할을 합니다. msg의 내용이 화면에 띄워진 것을 볼 수 있습니다. (3) OnLBu..

반응형