C++/summary

3장 이어서......

gandus 2010. 12. 1. 10:30

응용 프로그램 클래스  - 프레임 윈도우 메시지 루프 제공
- init()
- run()

CMainFrame  -  프레임 윈도우 기능 정의 뷰 생성.

-프레임 윈도우 클래스는 CFrame과 다르다 상속받은것.....
- OnCreate()  만든다.

CChilFrame  -  모든 코드를 여기에 추가한다.

- OnPaint() 다시 그리기를 할 수 있다.


프로젝트  f1.cpp   f2.cpp 일때
f1.cpp 의 전역변수 int g= 10 을 f2에서 사용할려면 extern int g; 를 선언해야한다.



이 3개의 부모는??  그리고  각각의 역할은


1, 응용 프로그램 객체,

2 메인 동적으로 

3 뷰 객체 (메인이 만들어 지면서 has a 관계로 뷰 객체가 만들어 진다.)


메시지핸들러가 언제 호출...
가상함수가 호출되는 부분?


MFC전역함수 목록... 물론 더 존재한다.

- 클래스에 상관없이 어디서든 사용할 수 있다. 편리하다






사용 예

 

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)

{

    AfxMessageBox("마우스를 클릭했습니다.");

}










 

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)

{

    TRACE("응용 프로그램 객체의 주소: %p = %p\n",

        AfxGetApp(), &theApp);


   
TRACE("
프레임 윈도우 객체의 주소: %p = %p\n",

        AfxGetMainWnd(), theApp.m_pMainWnd);

    TRACE("응용 프로그램 이름: %s\n", AfxGetAppName());

}








 

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)

{

    // 인스턴스 핸들값은 실행 파일이 로드된 가상 메모리의

    // 주소를 나타낸다.

    TRACE("실행 파일이 로드된 가상 메모리의 주소: %p\n",

        AfxGetInstanceHandle());

}

void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)

{

    // 인스턴스 핸들값은 실행 파일이 로드된 가상 메모리의

    // 주소를 나타낸다.

    TRACE("실행 파일이 로드된 가상 메모리의 주소: %p\n",

        AfxGetInstanceHandle());

}