MFC 65

CCmdTarget Class MFC

CCmdTarget Class MFC 라이브러리 메시지 맵 아키텍처를 위한 base 클래스. class CCmdTarget : public CObject 요약 메시지 맵은 명령어 혹은 메시지를 멤버 함수에 전달 한다. (명령어는 메뉴 아이템, 버튼, 단축키로 부터 온 메시지이다) CCmdTarget를 상속받은 중요한 플레임워크 클래스는 CView, CWinApp, CDocument, CWnd, CFrameWnd 등이 있다. 여러분이 메시지를 처리하기 위해 새로운 클래스를 만들었다면 이런 CCmdTarget로부터 상속 받은 클래스 중의 하나를 상속 받으면 된다. CCmdTarget 클래스를 직접 상속 받는 경우는 극히 드문 일이 될것이다. command target과 OnCmdMsg 루팅에 대한 개요는 C..

MFC 2008.08.07

MFC 클래스의 최상위 클래스 CObject

MFC 클래스의 최상위 클래스 CObject C/C++/MFC 몇개의 클래스를 제외하고 MFC의 클래스는 CObject라는 클래스를 상속받는다. 이 클래스는 메모리에 클래스를 설정하는 기능 및 클래스의 기능과 종류를 알수 있는 함수를 가지고 있다. Visual Studio Setup Directory/MFC/Include/AFX.H File #ifdef _AFXDLL class CObject #else class AFX_NOVTABLE CObject #endif { public: // Object model (types, destruction, allocation) virtual CRuntimeClass* GetRuntimeClass() const; virtual ~CObject(); // virtual..

MFC 2008.08.07

MFC 클래스 계층도

그 중 중요한 몇 개의 클래스를 요약해 보면,1. CObject 클래스  MFC의 최상위 기저 클래스로써 메모리에 클래스를 설정하는 기능을 가진 클래스이다. CObject 클래스는 클래스 루트로써만 작용하는 것이 아니라, 다음과 같은 서비스와 기능을 제공한다.    직렬화(Serialization)의 지원 : 현재 클래스의 객체가 디스크에 저장이 가능하도록 지원하고, 저장 유무를 확인할 수 있다.  Run-time 클래스 정보 : 현재 클래스의 상태를 확인하고 오류를 정리할 수 있다.  객체의 검사 출력 : 클래스의 객체가 유효한지 검사한다.  컬렉션 클래스에 대한 호환성 제공 : 컬렉션 클래스에 저장 가능한 객체는 CObject 클래스를 상속받는 클래스만이 가능하다. 그래서 사용자 클래스를 제작해 컬렉..

MFC 2008.08.07

DECLARE_DYNCREATE 매크로 풀어쓰기...

아래 발췌내용에서 조금 잘못된 부분이 있다. 런타임클래스를 이용하여 객체를 생성하는 것을 동적 생성이라고 용어정의를 내리는 것이 혼동을 줄 수 있다... 보통 동적 생성이라 함은 메모리 할당 함수나 연산자를 이용하여 실행중에 생성하는 것을 의미한다. new연산자를 이용하여 생성하는 것이 그 대표적인 예라고 볼 수 있다. 그리고 원래 DECLARE_DYNCREATE - IMPLEMENT_DYNCREATE 설정되었다고 해서 new 연산자를 사용하지 못하는 것은 아니다. 단지 런타임클래스의 m_pfnCreateObject 함수포인터 멤버(이 포인터는 클래스의 CreateObject 멤버 함수를 가리킴)를 이용하여 객체를 생성할 수 있는 기능을 추가한 것일 뿐이다. 다만 권고사항으로 위 매크로 선언시 생성자에 ..

MFC 2008.07.30