<4D F736F F F696E74202D20C1A C0E520B5B5C5A5B8D5C6AE20C6C4C0CF20C0D4C3E2B7C220B9D720B4D9BEE7C7D120BAE420C5ACB7A1BDBA2E BC8A3C8AF20B8F0B5E55D>

Similar documents
윈도우 프로그래밍의 개념

슬라이드 1

윈도우 프로그래밍의 개념

Visual C++의 개요

DLL(Dynamic Linked Library)

윈도우시스템프로그래밍

윈도우 프로그래밍의 개념

PowerPoint Presentation

5장 MFC기반 다지기

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - hci2-lecture10.ppt

그래픽 프로그래밍

윈도우 프로그래밍의 개념

PowerPoint 프레젠테이션

윈도우시스템프로그래밍

Microsoft PowerPoint - hci2-lecture7.ppt

Microsoft Word - src.doc

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

Microsoft Word - hci08-final-answer.doc

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

C++ Programming

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - additional08.ppt [호환 모드]

슬라이드 1

Microsoft PowerPoint - Java7.pptx

쉽게 풀어쓴 C 프로그래밍

Lab 3. 실습문제 (Single linked list)_해답.hwp

윈도우즈프로그래밍(1)

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

윈도우시스템프로그래밍

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

PowerPoint Template

Programming hwp

PowerPoint Template

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

C++ Programming

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

C 언어 프로그래밊 과제 풀이

chap 5: Trees

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

제11장 프로세스와 쓰레드

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

이것은리스트뷰의 setadapter 메소드에잘표현되어있습니다. setadapter 는리스트뷰에사용할데이터객체를넘겨주는메소드입니다. 일반적으로생각한다면 ArrayAdapter 객체를생성하여사용할데이터를저장할것이고데이터가저장된 ArrayAdapter 객체를 setadapt

오버라이딩 (Overriding)

UI TASK & KEY EVENT

Microsoft PowerPoint - Chapter 6.ppt

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

PowerPoint Presentation

설계란 무엇인가?

PowerPoint 프레젠테이션

설계란 무엇인가?

ISP and CodeVisionAVR C Compiler.hwp

슬라이드 1

Programming hwp

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

<BAF1C1EABEF320435F432B2B20C7D9BDC9C1A4B8AE2E687770>

OCW_C언어 기초

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

어댑터뷰

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

슬라이드 1

Programming hwp

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

Chapter 1. MFC 시작하기

슬라이드 1

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

tiawPlot ac 사용방법

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - CPP_chap7_dialogbox(2)

Slide 1

BMP 파일 처리

4장기본프로그래밍2

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요

03_queue

JAVA PROGRAMMING 실습 08.다형성

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

Microsoft PowerPoint - 09-Object Oriented Programming-3.pptx

JVM 메모리구조

MVVM 패턴의 이해

untitled

17장 클래스와 메소드

Microsoft PowerPoint - additional06.ppt [호환 모드]

안드로이드기본 11 차시어댑터뷰 1 학습목표 어댑터뷰가무엇인지알수있다. 리스트뷰와스피너를사용하여데이터를출력할수있다. 2 확인해볼까? 3 어댑터뷰 1) 학습하기 어댑터뷰 - 1 -

쉽게 풀어쓴 C 프로그래밍

Visual Basic 반복문

슬라이드 1

Microsoft PowerPoint - es-arduino-lecture-03

강의계획서 1. 강의개요 학습과목명 객체지향프로그래밍 Ⅰ 학점 3 학점교 강사명교 강사전화번호 강의시간 4시간강의실수강대상 2. 교과목학습목표 4차산업혁명시대의도래로컴퓨터와프로그래밍에대한관심이커지고있으며, 여러분야에서소프트웨어의중요성을강조하며, 새시대를이끌

PowerPoint Template

PowerPoint Presentation

Transcription:

제 10 장다양한뷰클래스 10.1 도큐먼트 10.2 파일입출력 10.3 다양한뷰클래스 실습 10-1 Formview를이용한문자를출력하고파일입출력 10.4 분할윈도우 실습 10-2 정적분할윈도우를이용한학생정보프로그램 10.5 다중뷰 실습 10-3 다중뷰만들기

도큐먼트 CDocument 클래스 데이터를관리하는클래스 OnNewDocument() 함수 새로운도큐먼트를만드는기능 Serialize() 함수 도큐먼트의내용을디스크로부터읽어오고, 저장하는기능 OnSaveDocument() 함수 OnOpenDocument() 함수

도큐먼트 CArchive 클래스 표준 C++ 라이브러리 iostream 과유사 도큐먼트의데이터를읽고쓰는이진삽입및추출연산자를정의 CArchive & operator << (CArchive &, Type &); 저장 CArchive & operator >> (CArchive &, Type &); 읽기 IsStoring() 함수 현재데이터를저장하고있는중인지, 데이터를읽고오고있는중인지알아내는함수 데이터를저장중이면 TRUE, 읽어오고있는중이면 FALSE 를반환

도큐먼트 Serialize() 함수 직렬화 (Serialization) 란하드디스크와같은저장매체에데이터를저장하고읽어들이는과정 기본적인기능은 CObject클래스의 Serialize() 함수에정의 도큐먼트클래스가자기자신의데이터를관리하므로도큐먼트클래스에 Serialize() 함수를오버라이딩하여사용한다.

도큐먼트 Serialize( ) 함수 void CPractice10_1Doc::Serialize(Carchive& ar) { if (ar.isstoring()) { ar << m_strid // 파일에데이터를저장 } else { ar >> m_strid // 파일로부터데이터를읽음 } }

파일입출력 데이터를저장할때 OnSaveDocument() 함수가실행 CFile 클래스를이용하여해당하는파일을열어 CArchive 클래스를통로로데이터를저장 데이터를읽어올때 OnOpenDocument() 함수가실행 CFile 클래스를이용하여해당하는파일을열어 CArchive 클래스를통로로데이터를읽어옴 Serialize() 함수 파일을저장하거나읽어올경우최후에데이터를저장하거나읽어오는함수

다양한뷰클래스 CView 클래스에서파생된클래스 CCtrlView 클래스와 CScrollView 클래스로나뉜다. CCtrlView : 뷰에서컨트롤의기능을지원 CScrollView: 일반적인뷰클래스의속성 +AddOn

다양한뷰클래스 다양한뷰클래스의종류와기능 클래스이름 CView CCtrlView CEditView CListView CRichEditView CTreeView CScrollView CFormView CDaoRecordView CHtmlView COleDBRecordView CRecordView 기능모든뷰클래스의기저클래스컨트롤기능뷰클래스의기저클래스에디트관련기능을구현하는뷰클래스리스트컨트롤의기능을구현하는뷰클래스리치에디트컨트롤의기능을구현하는뷰클래스트리컨트롤의기능을구현하는뷰클래스스크롤이가능한뷰클래스대화상자기반의문서 / 뷰구조를갖는뷰클래스 DAO를지원하는뷰클래스 HTML을지원하는뷰클래스 OLE DB를지원하는뷰클래스 ODBC를지원하는뷰클래스

다양한뷰클래스 폼뷰 (FormView) SDI 형태의프로그램구조를가지면서컨트롤을사용할수있는형태 CView 클래스에서상속받은형태이기때문에 CMainFrame의자식윈도우로서동작 대화상자처럼컨트롤을사용할수있다는점을제외하고는 CView 클래스에서상속받은 View와다른점은없다.

실습 10-1 FormView 를이용한문자출력및입출력 이번실습은폼뷰클래스내에서각컨트롤들을배치하고각컨트롤들을조작하여 Edit Control 에입력된글자를화면에출력하고, 출력된문자의위치와문자의색을바꾸는프로그램을작성하는것이다. 또한문자의위치, 색상, 내용을파일에저장하고여는기능을구현한다. 이번실습을통해폼뷰를이용한프로그램작성법및파일입출력을익힐수있다.

실습 10-1 프로그램작성순서 1) SDI 기반의프로젝트를생성한다. 마지막단계에서 View 클래스의기저클래스를 CFormView 로선택한다. 2) FormView 대화상자에컨트롤을배치하고속성을설정한다. Group Box, Edit Box, Button, Static Text 등 3) 컨트롤들을멤버변수에연결한다. 4) 필요한멤버변수를추가하고초기화한다. 입력한문자열의위치와색상을저장하는변수

실습 10-1 5) Button 에대한메시지를처리한다. 입력한문자열을출력하는메시지함수 글자색상을변경하는메시지함수 글자를지우는메시지함수 글자의위치를변경하는메시지함수들 6) 윈도우에문자열을출력하게한다. OnDraw( ) 함수에서문자열을출력한다. 7) Serialize() 함수를구현한다. 8) 프로그램을실행시킨다.

실습 10-1 실행결과

분할윈도우 분할윈도우 프레임의뷰영역을두개이상의영역으로나누어서보는것 동적분할윈도우 처음에는하나의뷰영역을나타내지만사용자가원하면뷰영역을나눌수있는것 정적분할윈도우 프로그램실행처음부터뷰영역이나누어져있는것 프로그램실행도중윈도우의영역을나눌수없다.

분할윈도우 동적윈도우생성방법 응용프로그램마법사에서자동생성 [ 사용자인터페이스기능 ] 단계의 [ 주프레임스타일 ] 항목에서 [ 분할창 ] 항목을체크한다. 자동생성된소스 CSplitterWnd 클래스의객체를멤버변수로선언 CSplitterWnd m_wndsplitter; OnCreateClient() 함수 return m_wndsplitter.create(this, 2, 2, CSize(10, 10), pcontext);

분할윈도우 정적윈도우생성방법 메인프레임클래스에 CSplitterWnd 클래스의객체를멤버변수로등록 클래스마법사에서 OnCreateClient() 함수를추가하고, CSplitterWnd 클래스의멤버함수인 CreateStatic() 함수를이용하여정적분할윈도우를생성한다. 각영역의특정뷰를설정하기위해서는 CreateView() 함수를이용한다.

실습 10-2 정적분할윈도우를이용한학생정보프로그램만들기 이번실습은정적분할윈도우를이용하여한쪽은리스트뷰, 다른한쪽은폼뷰를배치한다. 그리고폼뷰에서학생정보를입력하고리스트뷰에서보여주는프로그램이다. 입력한학생정보를수정, 삭제할수있도록한다.

실습 10-2 프로그램작성순서 1) SDI 기반의프로젝트를생성한다. 마지막단계에서 View 클래스의기저클래스를 CListView 로선택한다 2) 오른쪽분할영역에나타날폼뷰를생성한다. 대화상자를생성하고속성을설정한다. 속성에서 [styles] 에서 child 로 [Border] 에 None 대화상자에컨트롤을배치하고속성을설정한다. 생성된대화상자와연결할클래스를만든다. 3) Edit Control 들과멤버변수를연결한다.

실습 10-2 4) 정적분할윈도우를설정한다. CSpiltterWnd의객체생성 OnCreateClient() 함수추가 OnCreateClient() 함수에서 CreateView() 함수를이용하여분할윈도우를생성 5) 오른쪽리스트뷰에학생정보를추가한다. 추가버튼의명령핸들러함수작성 6) 오른쪽리스트뷰의학생정보를수정한다. 수정버튼의명령핸들러함수작성

실습 10-2 7) 오른쪽리스트뷰의학생정보를삭제한다. 삭제버튼의명령핸들러함수작성 8) 프로그램을실행시킨다.

실습 10-2 실행결과

다중뷰 다중뷰 하나의도큐먼트에여러가지의뷰가설정된형태 분할윈도우와다른점 뷰화면이나누어지는것이아니라뷰자체가변경 분할윈도우도다중뷰라말할수있다.

실습 10-3 다중뷰만들기 이프로그램은폼퓨에서문자를입력하고도큐먼트에저장시킨상태에서 [ 보기 ] 메뉴의 [ 뷰전환 ] 항목을선택하면일반뷰의형태로바뀐다. 이때폼퓨에서도큐먼트에저장시킨문자가일반뷰에도출력이된다. 일반뷰상태에서다시 [ 보기 ] 메뉴의 [ 뷰전환 ] 항목을선택하면폼뷰의형태로바뀐다. 이번실습을통해다중뷰의개념과구현방법을익힐수있다.

실습 10-3 프로그램작성순서 1) SDI 기반의프로젝트를생성한다. [ 생성된클래스 ] 단계에서 View 클래스의기저클래스를 CFormView 로선택한다 2) 새로운뷰클래스를생성한다. 3) 폼뷰의대화상자에컨트롤을배치한다. 4) 다중뷰를위한코드를입력한다. 5) 메뉴에 [ 뷰전환 ] 항목을만든다.

실습 10-3 6) 메뉴에대함메시지함수를작성한다. [ 뷰전환 ] 에대한메시지함수를작성한다. 7) 폼뷰에서입력한문자를도큐먼트에저장하고뷰전환시일반뷰에출력한다. 8) 프로그램을실행시킨다.

실습 10-3 실행결과

연습문제 10-1 폼뷰에서정보를입력한후 [ 확인 ] 버튼을누르면뷰영역에서마우스의움직임에따라정보가마우스를따라다니면서표시된다. 그리고왼쪽마우스를누르면데이터를 5 번까지출력하고오른쪽마우스를누르면출력된데이터를삭제하는프로젝트를작성한다.

연습문제 10-1 실행화면