1. 참고링크 [Bottom] [Top]

2. MFC 처리 프로세스 [Bottom] [Top]

2.1. SDI 시작/종료 프로세스 [Bottom] [Top]

SDI(단일 문서) 프로그램의 시작과 종료 프로세스.

2.2. Dialog 시작/종료 프로세스 [Bottom] [Top]

Dialog(대화 상자) 프로그램의 시작과 종료 프로세스.

3. 윈도우 제어 [Bottom] [Top]

3.1. 윈도우의 최소 / 최대 크기 지정하기 [Bottom] [Top]

윈도우를 특정 크기 이하 또는 이상으로 바꿀수 없도록 지정하는 소스 코드.

3.2. CView 객체 다시 그리기 [Bottom] [Top]

CDocument 클래스와 연결된 CView 상속 클래스의 클라이언트 영역을 다시 그릴 때 필요한 함수.

3.3. 화면 이중 버퍼링 사용하기 [Bottom] [Top]

CView 상속 클래스에서 클라이언트 영역을 다시 그릴 때 깜박거리는 현상 (Flicker 현상) 을 막기 위하여 이중 버퍼링 사용하기.

3.4. 투명/반투명 윈도우 만들기 [Bottom] [Top]

특정 색상값(Color Key)을 제거한 투명 윈도우나 알파(Alpha)값 조절이 가능한 반투명 윈도우를 만들 때 Windows 2000 부터 추가된 레이어드(Layered) 윈도우를 사용한다.

참고1> WS_EX_LAYERED 확장 스타일은 매크로(#define문) 때문에 생각지도 못한 컴파일 오류가 발생할 수 한다. 레이어드 윈도우는 Windows 2000 부터 지원하기 때문에 다음과 같이 stdafx.h 파일을 수정한다.

참고2> 레이어드 윈도우의 좀 더 색다른 효과를 사용해 보고 싶다면 UpdateLayeredWindow() 함수에 대하여 좀 더 알아보면 된다.

4. 분할 윈도우 처리 [Bottom] [Top]

4.1. 다중 분할 윈도우 만들기 [Bottom] [Top]

상/하, 좌/우가 복합적으로 분할된 다중 분할 윈도우를 생성하는 소스 코드 (아래의 그림과 같이 분할하는 코드).

4.2. 분할 윈도우의 스크롤바 없애기 [Bottom] [Top]

4.3. 분할 윈도우의 크기 조절하기 [Bottom] [Top]

4.4. 분할 윈도우의 Client Edge 지우기 [Bottom] [Top]

분할 윈도우의 Client Edge 는 CWnd 클래스를 상속 받은 다른 클래스와 달리 윈도우 스타일을 사용하지 않고 CSplitterWnd 클래스에서 직접 그린다. 따라서 CSplitterWnd 클래스를 상속 받아서 Client Edge 를 그리는 함수(가상 함수)를 재정의해야 한다.

5. View 클래스 처리 (CView) [Bottom] [Top]

5.1. CView 클라이언트 영역의 Client Edge 지우기 [Bottom] [Top]

CView 클라이언트 영역의 Client Edge 를 지우기 위한 두 가지 방법.

5.2. CView 클라이언트 영역을 지우지 않기 [Bottom] [Top]

CView 클라이언트 영역을 다시 그릴 때 깜박거리는 현상 (Flicker 현상) 을 막기 위한 두 가지 방법.

5.3. CView 클라이언트 영역의 배경색 바꾸기 [Bottom] [Top]

배경색을 바꾸기 위하여 WM_ERASEBKGND 메세지 핸들러를 Overriding 하거나 OnDraw() 함수에서 처리할 수 있으며, 다음과 같이 윈도우 생성 시 Brush 설정으로 배경색 지정.

참고> 시스템 색상 상수값은 winuser.h 헤더 파일에 정의 되어 있으며, COLOR_SCROLLBAR 부터 COLOR_MENUBAR 까지 다양한 값들이 정의 되어 있다. 시스템 색상을 지정할 때는 위에서 주석처리된 코드 처럼 + 1 해야 한다.

6. 기타 View 클래스 처리 (CView 제외) [Bottom] [Top]

6.1. CEditView 의 가로 스크롤바 없애기 [Bottom] [Top]

참고> 동일한 방법으로 CEditView 의 스타일을 바꿀 수 있다.

6.2. CEditView 에 문자열 추가하기 [Bottom] [Top]

CListBox 와 같이 문자열을 추가하기 위한 함수.

6.3. CEditView 의 배경색 바꾸기 [Bottom] [Top]

CEditView 는 Edit 컨트롤을 포함하고 있기 때문에 CView 와 동일한 방법으로 배경색을 바꿀 수 없다. 아래와 같은 방법으로 배경색을 지정할 수 있다.

MFC 프로그래밍 1 (last edited 2009-02-12 09:37:47 by viper)