issues
search
Chromatic-Hwi
/
C_PlusPlus_MFC
1
stars
0
forks
source link
열혈강의 MFC 교재 (프리렉)
#3
Open
Chromatic-Hwi
opened
1 year ago
Chromatic-Hwi
commented
1 year ago
1장.
<GetMessage() 함수>
응용 프로그램의 메세지 큐를 검사하여 전달받은 메세지가 있는지 확인.
<TranslateMessage() 함수>
특정 메세지를 전환하는 함수.
ex) WM_KEYUP 메세지를 WM_CHAR 메세지로 전환.
<DispatchMessage() 함수>
메세지를 처리하는 함수.
내부적으로는 윈도우 프로시저 함수를 호출.
<윈도우 프로시저 함수>
특정 윈도우 메세지에 대해 개발자가 자신의 코드를 작성하는 영역.
콜백 함수! 그리고 이 함수를 호출하는 함수가 메인 메세지 루프의 DispatchMessage() 함수.
<WM_COMMAND 메세지>
프로그램의 메뉴를 선택하거나 버튼을 누를 때 발생.
상세 정보는 wParam 파라미터에 들어 있음.
lParm 파라미터는 사용하지 않음.
<WM_PAINT 메세지>
윈도우를 다시 그려야 할 때 발생.
윈도우를 종료할 때 발생.
2장.
<CWnd 클래스>
모든 윈도우 클래스의 기본 기능이 구현된 클래스.
<초기화 관련 메서드>
Create() / CreateEx() : 윈도우를 생성하는 함수. CreateEx()는 추가 확장 속성을 지정할 수 있다.
PreCreateWindow() : 윈도우를 생성하기 직전 호출되는 가상 함수, 재정의하여 (생성될 윈도우의 속성을 변경하는) 코드를 추가 가능.
GetStyle() / GetExStyle() : 윈도우의 기본 스타일과 확장 스타일을 반환하는 함수.
PreSubclassWindow() : 서브 클래싱 직전에 호출되는 가상 함수.
GetSafeHwnd() : 생성된 윈도우의 핸들을 반환하는 함수.
<CEdit 클래스>
직접 텍스트를 입력할 수 있음.
<CButton 클래스>
버튼 형식으로 윈도우가 바뀜.
화면에 출력할 윈도우 텍스트에 해당하는 문자열의 포인터.
<기본 윈도우 스타일>
WS_BORDER : 선으로 윈도우에 테두리를 그림.
WS_CAPTION : 제목 표시줄을 붙임. BORDER 스타일을 자동으로 포함.
WS_CHILD / WS_CHILDWINDOW : 자식 윈도우, 메뉴 표시줄을 가질 수 없으며, WS_POPUP 스타일과 반대이므로 함께 정의 X
WS_DISABLED : 위도우를 비활성화하여 생성.
WS_HSCROLL / WS_VSCROLL : 윈도우에 스크롤 막대를 붙여줌.
WS_ICONIC / WS_MINIMIZE : 윈도우 생성 뒤 최소화 모드.
WS_MAXIMIZE : 윈도우 최대화.
WS_POPUP : 윈도우를 독립적으로 화면에 띄울 수 있음.
WS_SYSMENU : 생성되는 윈도우의 제목 표시줄에 시스템 메뉴 추가.
WS_MINIMIZEBOX / WS_MAXIMIZEBOX : 위도우의 캡션에 최소화, 최대화 버튼 추가.
WS_SIZEBOX / WS_THICKFRAME : 윈도우를 생성할 때 크기를 변경하기 위한 테두리를 넣음.
WS_OVERLAPPED / WS_TILED : 겹치는 윈도우, 화면 상에서 여러 다른 윈도우와 겹칠 수 있음.
<CRect 클래스>
RECT 구조체를 클래스화한 것.
2개의 2차원 좌표(좌상좌표 = Point A, 우하좌표 = Point B)를 정의해 윈도우의 위치(=좌표)를 명시함.
MFC 에서는 좌상좌표와 우하좌표를 통해 윈도우의 폭과 높이를 직접 명시함. (좌상좌표가 시작점=위치, 우하 좌표가 크기가 되는 셈.)
3장.
<CCreateDemoApp 클래스>
CWinApp 클래스를 상속받아 만든 클래스.
응용 프로그램 자체를 객체화한 클래스.
<CWinApp 클래스>
응용 프로그램 자체를 의미하는 클래스.
응용 프로그램과 관련된 많은 정보를 담을 다양한 멤버를 갖고 있음. <멤버 변수>
m_hInstance : 현재 응용 프로그램의 인스턴스 핸들.
m_lpCmdline : WinMain() 함수의 lpCmdLine 파라미터와 같음. 프로그램을 실행했을 때 명령줄 정보가 들어 있음.
m_nCmdShow : WinMain() 함수의 마지막 파라미터인 nCmdShow와 같음.
m_pActiveWnd : 응용 프로그램의 최상위 프레임 윈도우에 대한 포인터. SDI 구조에서 이 값은 CMainFrame 클래스 객체의 포인터이다.
m_pszAppName : 응용 프로그램의 제목에 해당하는 문자열의 포인터.
m_pszExeName : 빌드한 실행 파일에서 확장자(.exe)를 제외한 파일명.
<CFrameWnd 클래스>
SDI 문서/뷰 구조를 갖는 MFC 응용 프로그램을 개발할 때 최상위 프레임 윈도우에 해당하는 클래스.
프레임이 있는 윈도우가 가져야 할 기본 기능을 정의한 클래스.
부모 윈도우가 없는 최상위 윈도우가 될 수 있는 윈도우.
<프레임 윈도우의 특징>
컨트롤 윈도우와의 상관 관계. (도구 모음 윈도우가 대표적)
도구 모음 윈도우는 CToolBar 클래스로 정의.
CMainFrame 클래스의 멤버 m_wndToolBar
도구 모음 윈도우의 공통적인 특징은 프레임 윈도우에 붙는 것.
<CDocument 클래스>
문서/뷰 구조에서 '문서'와 관련된 MFC 클래스. <SetModifiedFlag() 메서드>
문서가 변경되었음을 설정/해제하는 역할.
작업 중 저장과 종료에 관한 메서드.
<메시지 맵>
switch case 문 대체.
= 특정 메세지가 발생했을 때 어떤 함수를 호출해야 하는지 명시하는 매크로의 집합체.
BEGIN_MESSAGE_MAP() 매크로와 END_MESSAGE_MAP() 으로 시작과 끝을 명시.
4장.
1장.
<GetMessage() 함수>
<TranslateMessage() 함수>
<DispatchMessage() 함수>
<윈도우 프로시저 함수>
<WM_COMMAND 메세지>
<WM_PAINT 메세지>
2장.
<CWnd 클래스>
모든 윈도우 클래스의 기본 기능이 구현된 클래스.
<초기화 관련 메서드>
<CEdit 클래스>
<CButton 클래스>
<기본 윈도우 스타일>
<CRect 클래스>
3장.
<CCreateDemoApp 클래스>
<CWinApp 클래스>
<CFrameWnd 클래스>
<프레임 윈도우의 특징>
<CDocument 클래스>
<메시지 맵>
4장.