// 파일 사용시 공유 DLL 사용을 체크해야 함
// API의 windows.h 와 같은거
#include <afxwin.h>
// WinMain 부분 음... 여기에 메시지 루프가 들어가 있음
class CHelloApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
// 이부분이 API의 WndProc 부분, 메시지를 Catch 해서 처리해줌
class CMainFrame : public CFrameWnd
{
public:
CMainFrame();
protected:
afx_msg void OnPaint();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
DECLARE_MESSAGE_MAP()
};
// 프로그램 객체
CHelloApp theApp;
// 클래스 정의
// 이부분은 API의 CreateWindow와 같은 역활을 해줌
BOOL CHelloApp::InitInstance()
{
m_pMainWnd = new CMainFrame; // 객체 만들어 지면서 생성자 실행
m_pMainWnd ->ShowWindow(m_nCmdShow); // ShowWindow 명령 실행
m_pMainWnd ->UpdateWindow(); // UodateWindow 명령 실행
return TRUE;
}
// 각 함수의 플러그를 보고 싶으면
// 함수에 커서를 대고 F12키를 눌러보자! 그함수를 정의한 헤더 파일등을 볼수 있다
CMainFrame::CMainFrame()
{
Create(NULL,"HelloMFC Application");
}
// WM_PAINT 할때의 명령
void CMainFrame::OnPaint()
{
char *msg = "Hello, MFC";
CPaintDC dc(this);
dc.TextOut(100,100,msg,lstrlen(msg));
}
// WM_LBUTTONDOWN 의 명령
void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
MessageBox("마우스클릭했지?","마우스",MB_YESNOCANCEL | MB_ICONQUESTION);
}
// 메시지 맵
// 이 메시지 맵은 CMainFrame의 소속이다
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
// MFC에이미 정의가 되어있는 키워드
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
// 맨 마지막 줄은 DefWnidowProc 와 같은 명령을 해준다
// 이 다음에 WinMain 함수가 생략되어 있음.
// 이 소스에서 실행하는건 프로그램 객체 선언 CHelloApp theApp; 이 한줄 뿐임.
// WinMain 함수는 어느 윈도우나 같으므로 아예 생략되었음. (컴파일할때 자동 처리)
// WinMain 함수를 보고 싶으면 BOOL CHelloApp::InitInstance() 줄에 브레이크 포인트를 걸어볼껏
// .net 에서만 유효, 호출 스택을 잘 보면 나옴
'C/C++언어 > 윈도우 MFC' 카테고리의 다른 글
GDI + 로 그림을 띄우는 법, (투명색 지정 포함) (0) | 2007.09.14 |
---|---|
알송 가사창은 어떻게 만들어졌을까? (0) | 2007.09.11 |
MFC에서 Jpg나 png 이미지 로드하고 보여주기 (0) | 2007.03.20 |
MFC 콘솔 응용 test (0) | 2007.03.14 |
GDI Plus 라이브러리.. (0) | 2007.03.09 |