본문 바로가기

Language/MFC

4대클래스 자동생성 소스 분석[CDocument] 자동생성 클래스 분석 - CDocument CDocument 클래스 CLyraDoc 클래스는 CDocument 클래스를 상속받은 것이다. CDocument 클래스는 일종의 데이터 임시 저장소이다. CLyraDoc와 CView는 연결되어 있다. 이 것을 확인하려면 LyraView.cpp에서 찾아볼 수 있을 것이다. 즉, 이 말들을 정리하면 VIEW 창에 나타내기를 원하는 것을 CDocument 클래스에 넣으면 된다는 뜻이다. BEGIN_MESSAGE_MAP(CLyraDoc, CDocument) //{{AFX_MSG_MAP(CLyraDoc) // NOTE - the Classwizard will add and remove mapping macros here. // DO NOT EDIT what you see.. 더보기
4대클래스 자동생성 소스 분석[CView] CView 클래스 CLyraView 클래스는 CView 클래스를 상속받은 것이다. 뷰 클래스의 영역을 설명하기 위해 예를 들겠다. 우리가 잘 쓰는 메모장에서 실제 우리가 텍스트를 쓰는 하얀 영역을 말한다. 메시지 매핑 BEGIN_MESSAGE_MAP(CDEMO1View, CView) //{{AfX_MSG_MAP(CDEMO1View) ON_WM_LBUTTONDOWN() //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() 생성자 함수 CDEMO1View::C.. 더보기
4대클래스 자동생성 소스 분석[CWinApp] 자동생성 클래스 분석 - CWinApp AppWizard 단계를 거치고 나면 Lyra 프로젝트를 만들고 나면 자동적으로 CWinApp -> CLyraApp CMDIFrameWnd -> CMainFrame CDocument -> CLyraDoc CView -> CLyraView인4개의 클래스가 만들어진다. 한가지 덧붙이면 WorkSpace 창에서 클래스 탭을 클릭하면 현재 생성된 클래스들을 볼수 있다. 클래스는 *.CPP, *.h 두 파일을 모두 보여 준다. 클래스 이름을 클릭하면 *.h 파일을 볼수 있고 해당 클래스의 함수를 클릭하면 *.cpp 파일이 보여지며 클래스를 수정해도 *.cpp, *.h 파일이 함께 자동 변경된다. CLyraApp클래스 우선 CWinApp 클래스다. 애플리케이션 클래스로 CLy.. 더보기
4대클래스 자동생성 소스 분석[CMain Frame] CMainFrame클래스 Mainfrm.cpp를 열어보면 앞의 CWinApp에서 다루어 본 BEGIN_MESSAGE_MAP을 볼 수 있을 것이다. 설명했으니 그냥 넘어간다. BEGIN_MESSAGE_MAP(CMainFrame. CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) // NOTE - the Classwizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code ! ON_WM_CREATE() //}}AFX_MSG_MAP END_MESSAGE_MAP() 아래의 indicators는 상태창에 나타나는 string의 ID값이다. ID_SEPARATO.. 더보기
4대클래스 상호 참조 4대 클래스간 참조 #include "MainFrm.h" //메인프레임 헤더파일 #include "ClassDoc.h" //Doc클래스 헤더파일 #include "ClassView.h" //View를 include 할때는 반드시 Doc 헤더파일이 위에잇어야한다 #include "Class.h" //APP Class 의 헤더파일 ●View클래스에서 void CClassView::OnMenuView() //뷰클래스 CClassApp *pApp=(CClassApp *)AfxGetApp(); //View -> App CMainFrame *pMain=(CMainFrame *)AfxGetMainWnd(); //View -> MainFrm //View -> MainFrm -> Doc CClassDoc *pDoc=(C.. 더보기
MFC노하우 돗대리아 | 돗대리아 http://blog.naver.com/dotdea/80018819067 트루 칼라를 사용하는 방법을 알고 싶거든요...??? pop3서버와 관련된 질문입니다. 컴터를 산지 5개월정도밖에 되지 않았는데....느려지고... 다이얼로그 박스기반의 윈도우에 메뉴를 띄우려면??? DAO에서 두개의 테이블 조인??? 모달리스 다이얼로그와 작업표시줄... 뷰윈도우에서 차일드 윈도우 만들기.. OCX를 만드는데 현재 어플리케이션에 HWND얻어오는 방법 16bit 비트맵 파일의 헤더정보에 대해... vb에서 만든 dll을 vc에서 쓰는법좀 가르쳐줘요... 메세지 훅킹에 의한 상하 좌우 키보드 조작법을 알고 싶습니다. edit control에서 입력되는 FontSize를 줄이는 방법? 현재 프린트 .. 더보기