728x90
반응형
실습 2-1
개발 환경
보기 > 솔루션 탐색기
실습 2-2
윈도우 크기를 나타내는 멤버 변수 추가
CMFC22View
// MFC_2_2View.h: CMFC22View 클래스의 인터페이스
//
#pragma once
class CMFC22View : public CView
{
protected: // serialization에서만 만들어집니다.
CMFC22View() noexcept;
DECLARE_DYNCREATE(CMFC22View)
// 특성입니다.
public:
CMFC22Doc* GetDocument() const;
// 작업입니다.
public:
// 재정의입니다.
public:
virtual void OnDraw(CDC* pDC); // 이 뷰를 그리기 위해 재정의되었습니다.
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
// 구현입니다.
public:
virtual ~CMFC22View();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// 생성된 메시지 맵 함수
protected:
DECLARE_MESSAGE_MAP()
public:
Cstring m_strWindowSize;
};
#ifndef _DEBUG // MFC_2_2View.cpp의 디버그 버전
inline CMFC22Doc* CMFC22View::GetDocument() const
{ return reinterpret_cast<CMFC22Doc*>(m_pDocument); }
#endif
void CMFC22View::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: 여기에 메시지 처리기 코드를 추가합니다.
}
< MFC2_2View.h* 와 MFC2_2View.cpp* 의 차이>
void CMFC22View::OnDraw(CDC* pDC)
{
CMFC22Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다.
// 윈도우 크기를 나타내는 문자열을 윈도우 좌측 상단 (10, 10)에 출력
pDC->TextOut(10, 10, m_strWindowSize);
}
+ _T 는 무엇인지?
_T("문자열") = "문자열" 이라고 생각
CString m_strOutput;
변수 추가 후 코드 수정
void CMFC22View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
m_strOutput = _T("왼쪽 마우스 버튼을 눌렀습니다. ");
Invalidate();
CView::OnLButtonDown(nFlags, point);
}
void CMFC22View::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
m_strOutput = _T("오른쪽 마우스 버튼을 눌렀습니다. ");
Invalidate();
CView::OnRButtonDown(nFlags, point);
}
void CMFC22View::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
m_strOutput = _T("키보드를 눌렀습니다. ");
Invalidate();
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}
<키보드 메세지 처리>
void CMFC22View::OnDraw(CDC* pDC)
{
CMFC22Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 여기에 원시 데이터에 대한 그리기 코드를 추가합니다.
// 윈도우 크기를 나타내는 문자열을 윈도우 좌측 상단 (10, 10)에 출력
pDC->TextOut(10, 10, m_strWindowSize);
CRect rect;
GetClientRect(&rect);
pDC->DrawText(m_strOutput, rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
728x90
반응형
'Windows 프로그래밍' 카테고리의 다른 글
03. 메세지 처리 (2) | 2023.10.09 |
---|