728x90
형님, MFC로 C++ 두 번째 강의 시작합니다! 🚀🎉 이제 MFC의 진짜 마법을 배우면서 더 강력한 애플리케이션을 만들어 볼 차례예요! 준비 되셨나요? 🔥💥
제 2장: MFC로 실용적인 애플리케이션 만들기!
이번에는 버튼 클릭 이벤트 처리와 다양한 윈도우 컨트롤을 다루는 방법을 배울 거예요! 으하하, 진짜 멋진 GUI 프로그램을 만들 준비가 된 거죠?! 👑✨
1. 버튼 클릭 이벤트 처리하기! 🎯
형님, 버튼 클릭 이벤트를 처리하는 방법은 MFC의 핵심입니다! 버튼을 클릭하면 특정 작업이 수행되는 방식인데요, 이것은 윈도우 프로그램에서 가장 중요한 부분이에요!
버튼 클릭 이벤트 처리 코드!
#include "stdafx.h"
#include <afxwin.h> // MFC 핵심 헤더 파일
// CMyWinApp 클래스 정의
class CMyWinApp : public CWinApp {
public:
virtual BOOL InitInstance();
};
// CMyWinApp 객체 생성
CMyWinApp theApp;
class CMyWnd : public CFrameWnd {
public:
CMyWnd();
afx_msg void OnButtonClick(); // 버튼 클릭 이벤트 처리 함수
DECLARE_MESSAGE_MAP() // 메시지 맵 선언
};
BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd)
ON_COMMAND(1, &CMyWnd::OnButtonClick) // 버튼 클릭 시 이벤트 처리
END_MESSAGE_MAP()
CMyWnd::CMyWnd() {
Create(NULL, _T("Hello, MFC with Button Click"));
// 버튼 생성: 버튼의 ID는 1
CButton* pButton = new CButton;
pButton->Create(_T("Click Me!"), WS_CHILD | WS_VISIBLE, CRect(50, 50, 200, 100), this, 1);
}
void CMyWnd::OnButtonClick() {
AfxMessageBox(_T("버튼이 클릭되었습니다!")); // 클릭 시 메시지 박스 출력
}
BOOL CMyWinApp::InitInstance() {
CMyWnd* pFrame = new CMyWnd;
m_pMainWnd = pFrame;
pFrame->ShowWindow(SW_NORMAL); // 창 보이기
pFrame->UpdateWindow();
return TRUE;
}
설명:
- CMyWnd: CFrameWnd를 상속받은 클래스로, 윈도우 창을 담당합니다.
- CButton: 버튼을 생성하고, 그 버튼을 클릭했을 때 OnButtonClick 함수가 호출됩니다! 이 함수에서 메시지 박스가 뜨면서 버튼 클릭 이벤트가 처리됩니다!
- DECLARE_MESSAGE_MAP과 BEGIN_MESSAGE_MAP: MFC에서 이벤트 처리를 위한 메시지 맵을 설정하는 부분입니다. 버튼 클릭과 같은 이벤트를 이 맵에 등록해서 처리해요!
2. 텍스트 박스와 버튼을 이용한 입력/출력! 📝
형님, 이제 텍스트 박스를 추가하고, 버튼 클릭 시 텍스트 박스에 입력한 값을 메시지 박스로 출력해보겠습니다! 이것은 사용자 입력을 받아서 처리하는 프로그램의 기본이에요!
텍스트 박스와 버튼을 이용한 입력/출력 코드!
#include "stdafx.h"
#include <afxwin.h> // MFC 핵심 헤더 파일
// CMyWinApp 클래스 정의
class CMyWinApp : public CWinApp {
public:
virtual BOOL InitInstance();
};
// CMyWinApp 객체 생성
CMyWinApp theApp;
class CMyWnd : public CFrameWnd {
public:
CMyWnd();
afx_msg void OnButtonClick(); // 버튼 클릭 이벤트 처리 함수
DECLARE_MESSAGE_MAP() // 메시지 맵 선언
private:
CEdit m_editBox; // 텍스트 박스를 위한 멤버 변수
};
BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd)
ON_COMMAND(1, &CMyWnd::OnButtonClick) // 버튼 클릭 시 이벤트 처리
END_MESSAGE_MAP()
CMyWnd::CMyWnd() {
Create(NULL, _T("Hello, MFC with TextBox"));
// 텍스트 박스 생성: 크기와 위치 설정
m_editBox.Create(ES_AUTOHSCROLL | WS_CHILD | WS_VISIBLE | WS_BORDER, CRect(50, 50, 250, 80), this, 1);
// 버튼 생성: ID 2
CButton* pButton = new CButton;
pButton->Create(_T("Show Text!"), WS_CHILD | WS_VISIBLE, CRect(50, 100, 200, 140), this, 2);
}
void CMyWnd::OnButtonClick() {
CString strText;
m_editBox.GetWindowText(strText); // 텍스트 박스에서 텍스트 가져오기
AfxMessageBox(strText); // 가져온 텍스트를 메시지 박스로 출력
}
BOOL CMyWinApp::InitInstance() {
CMyWnd* pFrame = new CMyWnd;
m_pMainWnd = pFrame;
pFrame->ShowWindow(SW_NORMAL); // 창 보이기
pFrame->UpdateWindow();
return TRUE;
}
설명:
- CEdit: MFC에서 제공하는 텍스트 박스 컨트롤입니다! 사용자가 텍스트를 입력할 수 있게 해줘요.
- GetWindowText(): 텍스트 박스에 입력된 값을 가져오는 함수입니다!
- AfxMessageBox(): 가져온 텍스트를 메시지 박스로 출력하는 함수입니다!
이제 버튼을 클릭하면, 텍스트 박스에 입력한 내용이 메시지 박스로 출력될 거예요! 🎉
3. 레이블(Label)과 다양한 컨트롤 추가하기!
형님, 윈도우 창에 **라벨(텍스트 레이블)**을 추가해서 정보를 표시하거나, 콤보 박스, 리스트 박스와 같은 다양한 컨트롤도 다뤄볼 거예요!
라벨 추가 코드!
#include "stdafx.h"
#include <afxwin.h> // MFC 핵심 헤더 파일
class CMyWinApp : public CWinApp {
public:
virtual BOOL InitInstance();
};
class CMyWnd : public CFrameWnd {
public:
CMyWnd();
afx_msg void OnButtonClick();
DECLARE_MESSAGE_MAP()
private:
CStatic m_label; // 텍스트 레이블을 위한 멤버 변수
};
BEGIN_MESSAGE_MAP(CMyWnd, CFrameWnd)
ON_COMMAND(1, &CMyWnd::OnButtonClick)
END_MESSAGE_MAP()
CMyWnd::CMyWnd() {
Create(NULL, _T("Hello, MFC with Label"));
// 레이블 생성: 텍스트 설정
m_label.Create(_T("This is a label"), WS_CHILD | WS_VISIBLE, CRect(50, 50, 300, 80), this, 1);
}
void CMyWnd::OnButtonClick() {
m_label.SetWindowText(_T("Label Updated!")); // 버튼 클릭 시 레이블 텍스트 변경
}
BOOL CMyWinApp::InitInstance() {
CMyWnd* pFrame = new CMyWnd;
m_pMainWnd = pFrame;
pFrame->ShowWindow(SW_NORMAL);
pFrame->UpdateWindow();
return TRUE;
}
설명:
- CStatic: 텍스트 레이블을 생성하는 MFC 클래스입니다. Create() 함수로 레이블을 만들고, **SetWindowText()**로 레이블의 텍스트를 변경할 수 있습니다!
오늘의 결론!
형님, 오늘은 MFC로 버튼 클릭 이벤트 처리, 텍스트 박스와 버튼을 이용한 입력/출력, 라벨 추가까지 배웠어요! 이제 사용자와 상호작용하는 프로그램을 만들 수 있게 되었죠?! 🚀💥
다음에는 더 복잡한 UI 구성과 메시지 처리에 대해 배워보며 MFC의 마법을 계속 확장해 나갈 거예요! 😎🔥
형님, C++의 윈도우 프로그램 마스터가 되는 그 날까지 힘차게 달려갑시다!! 💪🌟
728x90
'반도체 > MFC' 카테고리의 다른 글
[우주 여행 ] 4장: MFC로 시스템을 설계하고, 고급 기능을 구현하기!! (0) | 2024.12.17 |
---|---|
[우주여행] 3장: MFC로 우주를 여행하는 애플리케이션 만들기! (0) | 2024.12.17 |
[우주여행] 2. MFC란 무엇인가? (0) | 2024.12.17 |
[우주여행] 1. C++의 세계로 첫 발을 내딛다! 🚀 (0) | 2024.12.17 |
7. MFC에 대하여 (1) | 2024.08.20 |