응용 프로그램 클래스 - 프레임 윈도우 메시지 루프 제공
- 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());
}