Created
December 14, 2016 07:06
-
-
Save sungyongchoi/26eb3818dbc2382b3a0d63fdeccbe926 to your computer and use it in GitHub Desktop.
비주얼 스튜디오 2015, MFC, 마우스 사용하여 선 그리기
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// http://stoned.8m.com/Source/MFC/mousedraw.html | |
// ChildView.h : CChildView 클래스의 인터페이스 | |
// | |
#pragma once | |
// CChildView 창 | |
class CChildView : public CWnd | |
{ | |
// 생성입니다. | |
public: | |
CChildView(); | |
// 특성입니다. | |
public: | |
CPoint Previous_; | |
// 작업입니다. | |
public: | |
// 재정의입니다. | |
protected: | |
virtual BOOL PreCreateWindow(CREATESTRUCT& cs); | |
// 구현입니다. | |
public: | |
virtual ~CChildView(); | |
// 생성된 메시지 맵 함수 | |
protected: | |
afx_msg void OnPaint(); | |
DECLARE_MESSAGE_MAP() | |
public: | |
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); | |
afx_msg void OnDestroy(); | |
afx_msg void OnMButtonDown(UINT nFlags, CPoint point); | |
afx_msg void OnMouseMove(UINT nFlags, CPoint point); | |
}; | |
// ChildView.cpp : CChildView 클래스의 구현 | |
// | |
#include "stdafx.h" | |
#include "MFCApplication10.h" | |
#include "ChildView.h" | |
#ifdef _DEBUG | |
#define new DEBUG_NEW | |
#endif | |
// CChildView | |
CChildView::CChildView() | |
{ | |
} | |
CChildView::~CChildView() | |
{ | |
} | |
BEGIN_MESSAGE_MAP(CChildView, CWnd) | |
ON_WM_PAINT() | |
ON_WM_CREATE() | |
ON_WM_DESTROY() | |
ON_WM_MBUTTONDOWN() | |
ON_WM_MOUSEMOVE() | |
END_MESSAGE_MAP() | |
// CChildView 메시지 처리기 | |
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs) | |
{ | |
if (!CWnd::PreCreateWindow(cs)) | |
return FALSE; | |
cs.dwExStyle |= WS_EX_CLIENTEDGE; | |
cs.style &= ~WS_BORDER; | |
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, | |
::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL); | |
return TRUE; | |
} | |
void CChildView::OnPaint() | |
{ | |
CPaintDC dc(this); // 그리기를 위한 디바이스 컨텍스트입니다. | |
// TODO: 여기에 메시지 처리기 코드를 추가합니다. | |
// 그리기 메시지에 대해서는 CWnd::OnPaint()를 호출하지 마십시오. | |
} | |
int CChildView::OnCreate(LPCREATESTRUCT lpCreateStruct) | |
{ | |
if (CWnd::OnCreate(lpCreateStruct) == -1) | |
return -1; | |
// TODO: 여기에 특수화된 작성 코드를 추가합니다. | |
return 0; | |
} | |
void CChildView::OnDestroy() | |
{ | |
CWnd::OnDestroy(); | |
// TODO: 여기에 메시지 처리기 코드를 추가합니다. | |
} | |
void CChildView::OnMButtonDown(UINT nFlags, CPoint point) | |
{ | |
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다. | |
Previous_ = point; | |
CWnd::OnMButtonDown(nFlags, point); | |
} | |
void CChildView::OnMouseMove(UINT nFlags, CPoint point) | |
{ | |
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다. | |
if ((nFlags & MK_LBUTTON) == MK_LBUTTON) | |
{ | |
CClientDC dc(this); | |
dc.MoveTo(Previous_); | |
dc.LineTo(point); | |
Previous_ = point; | |
} | |
CWnd::OnMouseMove(nFlags, point); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment