-
OnPaint OnDrawI'm a Developer/MFC 2015. 8. 18. 15:55
OnPaint는 CWnd클래스의 멤버함수이고 OnDraw는 CView클래스의 멤버함수이다.즉, OnPaint함수는 윈도우창 전체에 영향을 미치는 그리기 함수이고 OnDraw는 메뉴와 같은 윈도우의 기능을 제외한 순수 View부분에 그리는 함수이다. 그렇기 때문에 OnDraw함수는 프린터에 출력되는 영역을 그리기위해 쓴다고 말하기도 한다. OnDraw함수의 원형은 다음과 같다. virtual void OnDraw( CDC* pDC ) OnPaint함수의 원형은 다음과 같다. afx_msg void OnPaint( ) afx_msg는 메시지에 의해 호출되는 함수임을 나타낸다. 위와 같은 관계가 있기 때문에 OnDraw함수는 OnPaint함수 안에서 호출된다. void CTEST06View::OnDraw(CD..
-
윈도우 메뉴I'm a Developer/MFC 2015. 8. 17. 18:17
이 전에도 설명해 놓았지만 CView 클래스는 윈도우의 화면 처리 기능을 맡고 있다. 윈도우 메뉴를 띄우는 것은 우리가 화면적으로 보여주는 것이기 때문에 모두 View에서 처리를 한다.기본적인 것이지만 MFC를 처음해보는 초보자 입장에서 어느 클래스에서 작업을 해야하는지 헷갈리는 경우가 많은 것 같다.(특히, View와 Doc중 어디에서 써야할지)Doc는 데이터처리, View는 화면처리에 쓰인다는 것을 항상 기억해야겠다.윈도우 메뉴는 WM_COMMAND 메시지를 기반으로 처리된다.
-
ComboBoxI'm a Developer/MFC 2015. 8. 17. 17:23
Combo Box 컨트롤에서 선택할 때마다 다음 콤보박스에서 선택할 수 있는게 달라지도록 하고 싶은 경우가 있다. 예를 들어 첫 번째 콤보박스에서 "서울시"를 선택하면 그 다음 콤보박스는 노원구,성북구,강남구,강북구 등등 서울에 있는 지역이름을 선택할 수 있고만약 첫 번째 콤보박스에서 "경기도"를 선택하면 그 다음 콤보박스는 하남시, 광명시, 고양시 등등 경기도에 있는 지역이름을 선택할 수 있게 하는 경우이다. 이 경우 우리는 Combo Box 컨트롤의 선택이 바뀔 때마다 발생하는 CBN_SELCHANGE 이벤트를 처리하면 된다. Combo Box1, 2, 3를 각각 cBox1, cBox2, cBox3라고 선언했다고 가정했을 때 다음과 같은 로직을 이용하면 된다. 먼저 cBox1의 선택에 따라 cBox2..
-
3. 윈도우 프로그램의 뼈대I'm a Developer/MFC 2015. 8. 10. 12:12
MFC는 프로그램의 메인 윈도우를 창틀과 창을 분리해 내듯이 윈도우의 틀과 클라이언트 영역으로 서로 다른 오브젝트로 나누었습니다. ● 프레임 윈도우(CFrameWnd) - 윈도우의 창틀에 해당합니다. 스크롤바, 최소,최대,닫기 버튼, 메뉴표시줄 등이 여기에 속합니다.● 도큐먼트(CDocument) - 윈도우의 클라이언트 영역으로 데이터를 저장 및 처리하는 기능을 합니다. 우리 눈에는 보이지 않고 내부적으로 동작합니다.● 뷰(CView) - 윈도우의 창에 해당하고 클라이언트 영역으로 데이터들을 보여주는 역할을 합니다. 우리가 눈으로 보는 화면영역이라고 볼 수 있습니다. 여기에서 CDocument의 데이터를 참조할 수 있는 기능이 준비되어 있습니다. - 프로그램의 뼈대를 이루는 클래스들의 계층 구조 CObj..
-
2. 변수 표기법I'm a Developer/MFC 2015. 8. 7. 19:57
윈도우 프로그래밍을 하는데 있어서 반드시 알아둬야하는 표기법이 있습니다. 바로 헝가리안표기법인데요그 전에 우선 알아둬야 할 것이 있습니다. 윈도우 프로그래밍에서는 상수와 데이터형들을 정의 해놓고 헝가리안 표기법을 이용하기 때문에 변수 명만 보고도 무슨 타입의 변수인지 알수 있어야합니다. 다음 표는 꼭 알아두는게 좋을 것 같습니다. 데이터 형의미 BOOL 논리형. TRUE 또는 FALSE 값 BYTE 8 bit unsigned 정수형 DWORD 32 bit unsigned 정수형 LONG 32 bit signed 정수형 LONGLONG 64 bit signed 정수형 ULONGLONG 64 bit signed 정수형 FLOAT float형 변수 LPARAM 32 bit 메시지 파라미터 LPSTR NULL ..
-
1. MFC란?I'm a Developer/MFC 2015. 8. 7. 19:35
MFC(Microsoft Foundation Class)는 윈도우 프로그래밍에 필요한 약 300여 개의 클래스를 계층구조적으로 구현해 놓은 클래스 라이브러리 입니다. MFC 클래스들은 다음과 같은 부류로 나누어 볼 수 있습니다. - 프로그램의 뼈대를 이루는 클래스- 윈도우 관련 클래스- 그래픽 관련 클래스- 자료 구조 클래스- 파일 및 데이터베이스 관련 클래스- 인터넷 관련 클래스- OLE 관련 클래스- 에러 처리 및 디버깅을 위한 클래스 먼저 다음의 MFC의 자료구조 클래스들을 알아두면 앞으로 공부하는데 더 도움이 될 것입니다. CPoint 클래스 기능 2차원 좌표계의 점을 저장 주요 멤버변수 int x, y 주요 멤버함수 연산자 함수 : =, ==, !=, +=, -=, +, - 등을 이용한 연산기능..