다른 작업을 하기 위해서 전체적인 구조를 파악해야 한다.
Workspace에서 Class 탭을 보면 아래 그림과 같은데, 각각은
CAboutDlg : 이 프로그램에 대한 내용
CMainFrame : 메뉴나 도구바에 대한 내용
CWATTetrisApp : 전체적인 프로그램에 대한 내용
CWATTetrisDoc : 문서에 관한 내용(특히 데이터)
CWATTetrisView : 화면에 보여지는 내용(사용자와 가장 관련있는 부분)
으로 구성되어 있다.
각각의 클래스를 열어보면 무지 많은(?) 함수들이 정신 없이 있을 것이다.
(여기에 대해서는 나중에 설명하겠다.)
앞으로 중점적으로 작업해야 할 클래스는 View를 제어하는 CWATTetrisView 클래스이다.
그럼, 이제부터 코드(소스)를 직접 건드려 보자.
1. 버튼을 생성
2. 버튼에 "메세지박스띄우기" 라는 글씨 적용
3. 버튼 클릭시에 "오! 박스가 뜨네"라는 메세지 박스 표시
버튼 생성
컨트롤을 추가하기 위해 (아래처럼)리소스탭으로 간다.
오른쪽에 여러가지 모양의 컨트롤이 있다.
거기에 마우스를 올려 보자.
[Select, Picture, Static Text, Edit Box, Group Box, Button ,.... 등등이 있다.]
그 중 우리가 사용할 것이 Button 이다
Button 을 마우스로 끌어서 다이어로그(TODO:... 이런식으로 써있는곳)에 올려 보자.
그러면, 버튼이 하나 생길 것이다.
그 버튼에서 마우스오른쪽 클릭을 한후, Property 를 선택하면 아래처럼 상자가 뜨는데,
Caption 을 수정한다.
(ID 는 컨트롤 고유번호이다.)
일단 화면 구성은 되었고,
버튼을 눌렀을 때 박스를 나타내 볼 것이다.
[여기까지 해서 Ctrl + F5 로 실행해 보면 된다.]
메세지 박스 나타내기
메세지박스를 나타내기 전에 "WATTetrisView.cpp" 파일을 열어 보자.
void CWATTetrisView::DoDataExchange(CDataExchange* pDX)
BOOL CWATTetrisView::PreCreateWindow(CREATESTRUCT& cs)
void CWATTetrisView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
와 같은 함수가 여러개 있다.
약 120 줄 정도의 소스가 있는데, 지금은 막 수정해서는 절대로 안된다.
앞으로 우리가 작업을 하는 것은 그 아래줄부터 추가를 하게 될 것이다.
버튼(메세지박스보이기)을 선택하고, [Ctrl + W] 를 누르면 MFC Classwizard 가 실행될 것이다.
( Classwizard란 프로그램을 쉽게 할수 있게 도와주는 놈이라고 생각하면 된다.)
Project : 현재 작업 중인 프로젝트를 나타냄
Class Name : 현재 작업중인 클래스를 나타냄
class 종류는 앞에서 설명한
CAboutDlg : 이 프로그램에 대한 내용
CMainFrame : 메뉴나 도구바에 대한 내용
CWATTetrisApp : 전체적인 프로그램에 대한 내용
CWATTetrisDoc : 문서에 관한 내용(특히 데이터)
CWATTetrisView : 화면에 보여지는 내용(사용자와 가장 관련있는 부분)
이러한 것들이 있을 것이다.
Object IDs : 현재 작업중인 컨트롤을 나타냄
여기서는 메세지박스보이기라는 글씨가 있는 버튼을 나타냄
Messages : 어떤일을 할것인지를 나타냄
BN_CLICKED : 마우스를 클릭했을 경우
BN_DOUBLECLICKED : 마우스를 더블 클릭했을 경우
여기서는 BN_CLICKED 를 선택하면 된다.
Member functions
현재 클래스에서 만들어진 함수를 보여준다.
WATTetrisView.cpp 파일에서 본 함수가 있을 것이다.
Add Class : 새로운 클래스는 만드는 작업
Add Function: 새로운 함수 만드는 작업 <=여기서 버튼을 눌렀을 때 실행될 함수를 만들것이다.
Delete Function: 생성된 함수를 지우는 버튼인데, 지금은 사용을 하지 말것!!.
Edit Code : 생성되어 있는 함수를 수정
BN_CLICKED 를 선택한후.. Add Function 을 누르면,
OK 후 EDIT code 누르면,
WATTetrisView.cpp 파일의 마지막 줄에
아래와 같은 코드가 생길 것이다.
void CWATTetrisView::OnButton1()
{ // TODO: Add your control notification handler code here } |
즉, 이 함수는 버튼을 눌렀을 경우에 실행되는 함수인 것이다.
이 함수안에 아래와 같이 메세지 박스를 나타내는 코드를 추가하자.
MessageBox("ㅋㅋ 메제지가 보이네.","메세지가 보이나?"); |
최종코드는 아래와 같다.
void CWATTetrisView::OnButton1()
{ // TODO: Add your control notification handler code here MessageBox("ㅋㅋ 메제지가 보이네.","메세지가 보이나?"); } |
Ctrl + F5로 컴파일&실행을 해보자.
이번에 작업한 내용은 그리 어렵지 않기 때문에
조금만 연습하면 눈감고도(?) 할수 있을 것입니다.~~
안녕하세요! mfc를 정말 잘 정리해놓으신것 같아요 !
근데 사진이 하나도 안나와요ㅠㅠㅠ