메뉴 건너뛰기

프로그래밍


[VC소스]VIEW에 낙서하기

파이팅건맨 1999.11.12 01:05 조회 수 : 692

VC의 VIEW에 대한 기초 다지기에 도움이 될 소스입니다. 리포트라 임시로 올려둡니돠.
많은 이용바람...^.^;


//* Document Class - CDrawDoc class CDrawDoc : public CDocument { protected: // create from serialization only CDrawDoc(); DECLARE_DYNCREATE(CDrawDoc) // Attributes public: int iMousePosX[5000], iMousePosY[5000]; bool bFlag; int count; // Operations public: // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CDrawDoc) public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); //}}AFX_VIRTUAL // Implementation public: virtual ~CDrawDoc(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: //{{AFX_MSG(CDrawDoc) // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code ! //}}AFX_MSG DECLARE_MESSAGE_MAP() }; * CDrawView Class – Member Functions void CDrawView::OnDraw(CDC* pDC) { CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here if(pDoc->bFlag) OnDrawPixel(); } void CDrawView::OnDrawPixel() { // TODO: Add your command handler code here CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CClientDC dc(this); pDoc->bFlag = true; for(int i=0;i<=pDoc->count;i++) dc.SetPixel(pDoc->iMousePosX[i],pDoc->iMousePosY[i],RGB(255,0,0)); } void CDrawView::OnDrawAll() { // TODO: Add your command handler code here CPen pen, pen2, pen3; int iPosX, iPosY; CRect rect; CBrush Brush1; CPoint point[7]; CClientDC dc(this); pen.CreatePen(PS_SOLID,1,RGB(55,55,55)); pen2.CreatePen(PS_SOLID,30,RGB(255,0,0)); pen3.CreatePen(PS_SOLID,10,RGB(0,0,150)); Brush1.CreateStockObject(LTGRAY_BRUSH); GetClientRect(&rect); CPen *pOldPen = (CPen *)dc.SelectObject(&pen); for(iPosY=0;iPosY<=rect.bottom;iPosY+=10){ dc.MoveTo(0,0); dc.LineTo(rect.right,iPosY); } for(iPosX=rect.right;iPosX>=0;iPosX-=10){ dc.MoveTo(0,0); dc.LineTo(iPosX,rect.bottom); } dc.SelectObject(&pen2); Rectangle(dc,10,10,100,100); rect.top = 200; rect.left = 200; rect.right = 300; rect.bottom = 300; FillRect(dc,&rect,Brush1); rect.top = 300; rect.left = 300; rect.right = 400; rect.bottom = 400; FrameRect(dc,rect,Brush1); rect.top = 350; rect.left = 350; rect.right = 500; rect.bottom = 500; dc.Draw3dRect(rect,RGB(200,200,0),RGB(50,100,100)); dc.SelectObject(&pen3); Ellipse(dc,400,400,500,20); Pie(dc,10,10,20,20,30,30,40,40); dc.SelectObject(&pen); Arc(dc,100,100,150,150,200,200,250,250); AngleArc(dc,70,80,2000,110.5,20.5); dc.SelectObject(&pen3); Chord(dc,80,80,90,95,100,100,120,220); point[0] = CPoint(200,10); point[1] = CPoint(250,20); point[2] = CPoint(250,100); point[3] = CPoint(220,150); point[4] = CPoint(150,100); point[5] = CPoint(150,20); point[6] = CPoint(180,10); Polygon(dc,point,7); dc.SelectObject(pOldPen); } void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if(pDoc->bFlag){ pDoc->iMousePosX[pDoc->count] = point.x; pDoc->iMousePosY[pDoc->count] = point.y; (pDoc->count)++; Invalidate(); } CView::OnLButtonDown(nFlags, point); } void CDrawView::OnNop() { // TODO: Add your command handler code here CDrawDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDoc->bFlag = false; }

이 게시물이  
AiRPAGE가  
번호 제목 글쓴이 날짜 조회 수
공지 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [52] 파이팅건맨 2016.02.20 236135
공지 [펌] ARM GCC Inline Assembler Cookbook 파이팅건맨 2006.08.18 43355
공지 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 25842
66 HTTP프로토콜을 이용한 파일 업로드 파이팅건맨 2002.12.24 3043
65 [Tip] CTRL-ALT-DEL키 막는법(NT,2000,XP,98) 파이팅건맨 2002.07.11 539
64 [Tip]Default 스크린세이버 가동 방법 파이팅건맨 2002.07.11 343
63 TCHAR, UNICODE, 그리고 윈도우 NT 파이팅건맨 2002.02.26 492
62 [C]밀리초를 구현하는 방법 파이팅건맨 2001.08.07 981
61 [TIP]Convex Hull 알고리즘 파이팅건맨 2000.10.10 442
60 Lex와 Yacc의 사용법 강좌 파이팅건맨 2000.10.09 672
59 [C,ASM]어셈으로 윈도우메세지박스 띄우기 파이팅건맨 2000.08.16 442
58 [C소스]간단한 Hash 구현 파이팅건맨 2000.04.20 705
57 [C소스]사칙연산 파싱(Parsing) 파이팅건맨 2000.04.18 1081
56 [C소스]화일처리관련소스 파이팅건맨 2000.04.06 243
55 [구현]병렬처리기법의 개념 파이팅건맨 2000.03.11 913
54 [ASM&C]Inline ASM- PC Speaker연주. 파이팅건맨 1999.12.13 313
53 [VC소스]Font정보를 이용한 텍스트핑퐁 파이팅건맨 1999.12.12 292
52 [ASM]PC-Speaker연주 파이팅건맨 1999.11.28 262
51 [ASM]4칙연산 계산기 소스 파이팅건맨 1999.11.22 1167
50 [VC소스]이미지 파일 저장 루틴(기초) 파이팅건맨 1999.11.18 415
» [VC소스]VIEW에 낙서하기 파이팅건맨 1999.11.12 692
48 [C++소스]가중치구하기? 파이팅건맨 1999.10.28 1503
47 [VC소스]윈도우 모양을 마음데로... 파이팅건맨 1999.10.26 502
위로