Microsoft PowerPoint - CPP_chap6_interface(2)

Size: px
Start display at page:

Download "Microsoft PowerPoint - CPP_chap6_interface(2)"

Transcription

1 사용자인터페이스 (2) 1

2 1. 대화상자 (Dialog) 2 학습목표 Graphs 예제에서여러가지굵기의선을그릴수있도록수정해본다 선의굵기를지정할대화상자를만들고대화상자클래스를만든다 대화상자구현과정 1 리소스에디터를사용하여대화상자리소스 (Resource) 를만든다. 대화상자리소스는대화상자의형태를정의한다. 2 ClassWizard를사용하여 CDialog 클래스를상속받아새대화상자클래스를만든다. 대화상자클래스는대화상자의기능을구현한다. 3 대화상자가메뉴명령에의해실행되려면, 메뉴리소스에메뉴항목을추가하고 ClassWizard를사용하여메뉴메시지핸들러를구현한다. 메뉴메시지핸들러에서대화상자를표시하는코드를구현한다. 4 필요에따라, 대화상자컨트롤이보내는메시지를처리하는메시지핸들러를구현한다. 5 ClassWizard를사용하여대화상자의컨트롤에해당하는데이터멤버를추가하고 Dialog Data Exchange와 Dialog Data Validation 설정

3 3 대화상자리소스 (Resource) 와대화상자클래스의연결 대화상자리소스는대화상자의형태를정의하고, 대화상자클래스는대화상자의기능을구현한다. 대화상자클래스는대화상자리소스에연결되어야한다. 대화상자클래스를정의할때대화상자리소스를지정해주어야한다. 대화상자의컨트롤들은대화상자클래스의멤버변수에연결되어야한다. ClassWizard 의 Member Variables 페이지에서대화상자컨트롤에해당하는멤버변수가대화상자클래스에정의된다.

4 4 프레임웍에서대화상자는두개의구성요소를갖는다 다이얼로그템플릿리소스 (dialog template resource) 대화상자의모양과컨트롤의배치를리소스에디터로비주얼하게디자인한리소스템플릿이다. 대화상자의크기위치스타일, 컨트롤의종류위치등을지정한다 다이얼로그클래스 (dialog class) CDialog 클래스를상속받아구현한 C++ 클래스 두종류의대화상자 Modal dialog box 프로그램의다른부분으로이동하기전에먼저대화상자를종료하여햐하는대화상자 Modaless dialog box 보통윈도우와같이다른윈도우로전환가능한대화상자를말한다.

5 5 소스 : "06-1 Graphs.zip" 대화상자리소스만들기 1 메뉴에서 Insert Resource Dialog 선택 2 메뉴에서 Edit Property 선택 3 Dialog Property 대화상자에서 ID: IDD_LINE_WIDTH Caption: Line Width Dialog 4 Controls 툴바에서 Edit Box와 Static Text 버튼을눌러컨트롤을추가한다. 5 EditBox를오른쪽버튼으로누르고 Properties선택 6 EditBox의 ID는 IDC_LINE_WIDTH 7 메뉴에서 Layout Tab Order 선택 Edit Box를클릭하여 Tab Order를 1번으로설정

6 6 대화상자클래스만들기 1 ClassWizard를시동하면새대화상자에대한클래스생성을묻는대화상자가디스플레이된다. 2 Create New Class 를선택 3 Create New Class 대화상자에서다음과같이입력 Name: CLineWidthDlg Base Class: CDialog Dialog ID: IDD_LINE_WIDTH

7 7

8 8 컨트롤과멤버변수연결하기 1 ClassWizard의 Member Variables 페이지에서 Class Name: CLineWidthDlg Control IDs: IDC_LINE_WIDTH Add Variable 버튼선택 2 Add member variable 대화상자에서 member variable name:m_width Category: Value Variable Type: int OK 3 ClassWizard 의 Member Variables 페이지에서 Minimum Value: 0 Maximum Value: 30

9 9

10 2. 메뉴 10 학습목표 메뉴를눌렀을때대화상자가화면에나올수있도록구현한다. 메뉴리소스에 Line Width 설정 항목을추가하고 메뉴를눌렀을때실행될메뉴메시지핸들러 (message handler function) 를구현한다. 소스 : "06-1 Graphs.zip" 메뉴리소스에메뉴항목추가 1 ResourceView에서메뉴리소스 IDR_LINES1TYPE 편집 2 메뉴바의오른쪽빈영역을더블클릭하면 Menu Item Properties 대화상자가표시된다

11 11 3 " 선 (L)" 메뉴바아래의메뉴항목더블클릭 ID: ID_LINE_WIDTH Caption: 선굵기 (&W) Prompt: 선굵기설정 n선굵기

12 4 " 선 (L)" 메뉴바아이템을마우스로드래그하여 " 편집 (E)" 과 " 보기 (V)" 사이로옮김 12

13 13 메뉴메시지핸들러함수구현 1 ClassWizard의 Message Map 페이지에서 Class name: CLines1Doc Object IDs: ID_LINE_WIDTH Messages: COMMAND Add Function 버튼선택 2 OnLineWidth 멤버함수추가된것확인 3 Edit Code 버튼을눌러내용입력 #include "linewidthdlg.h" void CGraphsDoc::OnLineWidth() { CLineWidthDlg dlg; dlg.m_width = m_width; if (dlg.domodal() == IDOK) { m_width = dlg.m_width; } }

14 14

15 15 CDialog::DoModal() 모달 (modal) 대화상자를디스플레이하는멤버함수이다. 모달대화상자는사용자가 OK 버튼을누르거나 Cancel 버튼을누르면종료된다. 모달대화상자가종료되면 DoModal() 멤버함수는 IDOK나 IDCANCEL 을리턴한다. CGraphsDoc::OnLineWidth 에서는 IDOK가리턴되었을경우에만라인굵기를새로설정한다.

16 16 버그수정 선굵기까지고려하여더넓게무효화하여야한다 InflateRectRect() 메소드로무효화할사각형을확장한다 CRect CRectangle::BoundRect() { CRect r = m_rect; r.inflaterect(m_width, m_width, m_width, m_width); return r; };

17 void CGraphsView::OnMouseMove(UINT nflags, CPoint point) { CGraphsDoc* pdoc = (CGraphsDoc*)GetDocument(); if (GetCapture() == this) { int w = pdoc->m_width; CRect r = MakeRect(m_point1,m_point2); r.inflaterect(w,w,w,w); InvalidateRect(r); m_point2 = point; r = MakeRect(m_point1,m_point2); r.inflaterect(w,w,w,w); InvalidateRect(r); } for (int i = pdoc->m_rects.getsize()-1; i>=0; --i) { CRectangle* r = &pdoc->m_rects[i]; if (r->ptinobject(point)) { if (r!= m_ptinrect) { if (m_ptinrect!= NULL) InvalidateRect(m_ptInRect->BoundRect()); m_ptinrect = r; InvalidateRect(m_ptInRect->BoundRect()); } return; } } if (m_ptinrect!= NULL) { InvalidateRect(m_ptInRect->BoundRect()); m_ptinrect = NULL; } 17

18 18 커멘드메시지 WM_COMMAND 메뉴나툴바에의해서발생하는메시지 커맨드메시지의전달순서 대부분의메시지는해당윈도우에직접전달되지만메뉴나툴바에의한커멘드메시지는 CCmdTarget 클래스로부터유도된여러클래스를두루거친다그중하나의클래스에서처리된다. 메뉴항목이선택되었을때, 다음과같은순서로전달된다. 1 Main Frame Window 2 활성화된 Child Frame Window 3 활성화된 Child Frame window에연결된활성화된뷰 4 활성화된뷰에연결되어있는도큐먼트 5 도큐먼트에연결되어있는도큐먼트템플릿 6 CWinApp

19 19 메시지핸들러와메시지의연결 툴바와메뉴는커맨드메시지를발생시킨다 이메시지를처리할메시지핸들러함수가호출되어야한다. 메시지가발생했을때연결된해당메시지핸들러함수를호출하는기능은 MFC에이미구현되어있다. ClassWizard에서메시지를처리할메시지핸들러를만들어주면된다. 커멘드메시지핸들러를어떤클래스에두어야하는가? " 선굵기 " 메뉴의메시지핸들러를어떤클래스의멤버함수로작성하여야할까? 도큐먼트클래스의멤버함수? 뷰클래스의? 고려할사항 여러뷰에공통적인기능은도큐먼트에구현한다 한뷰에한정된기능은그뷰에구현한다 커멘드메시지를제외한대부분의메시지핸들러는보통뷰클래스에구현한다.

20 20 대화상자의배경색설정 어플리케이션의 InitInstance 멤버함수에서 CWinApp의 SetDialogBkColor 멤버함수를호출하여설정 어플리케이션에서만들어지는모든대화상자와메시지박스의배경색이바뀜 대화상자의초기화 CDialog::OnInitDialog() 멤버함수를재정의하여구현한다. 이멤버함수는대화상자객체가생성된후, 대화상자윈도우가화면에나타나기전에호출된다. 오버라이드한 OnInitDialog() 멤버함수는에서는부모클래스 (CDialog) 의 OnInitDialog() 멤버함수를반드시호출하여야한다.

21 21 모달대화상자 모달대화상자를사용하는코드는다음과같은형태이다. CLineWidthDlg dlg; dlg.m_width = m_curwidth; if (dlg.domodal() == IDOK) { m_curwidth = dlg.m_width; } CDialog::DoModal() 멤버함수는대화상자를화면에출력시키고 OK 버튼이나 Cancel이눌려지면각각 IDOK나 IDCANCEL을리턴하면서빠져나온다. 즉대화상자는 DoModal() 내부에서만들어지고없어진다. 사용자가 Ok나 Cancel 버튼을누르면 CDialog클래스의 OnOK, OnCancel 메시지핸들러가호출된다. 이들메시지핸들러에서 EndDialog() 를호출하여대화상자를닫는다. 모달대화상자객체는보통함수의로컬변수로스택에생성되어함수가리턴되면서소멸한다

22 22 모달리스대화상자닫기 모달리스대화상자는메모리를할당받아생성해야한다 OnClose 멤버함수와 OnCancel멤버함수는 DestroyWindow를호출하고 DestroyWindow는대화상자윈도우를닫는다 모달리스대화상자의경우할당받은메모리해제는 PostNcDestroy 멤버함수에서 delete this 하여해제되는기능이이미구현되어있다

23 3. 공통대화상자 (Common Dialog) 23 학습목표 여러가지색의선을그릴수있도록 Graphs 예제를수정한다 색을지정할때윈도우즈에서지원하는색지정 Common Dialog Box를사용한다. 할일 먼저메뉴리소스에 선의색 (&L) 을추가한다. 메뉴메시지핸들러함수를도큐먼트클래스에구현한다. 메뉴메시지핸들러함수에서는색을선택대화상자를표시하고선택된색을멤버변수 m_pencolor에저장한다.

24 24 공통대화상자클래스 윈도우즈의 COMMDLG.DLL에정의된대화상자에대한클래스 자주사용되는대화상자들은이미만들어져있어서리소스나대화상자클래스만드는작업이필요없이바로사용할수있다 다음과같은공통대화상자클래스들이제공된다 CColorDialog 색을선택할때 CFileDialog 파일을열거나닫을때 CFindReplaceDialog 문자열을찾거나바꿀때 CFontDialog 폰트를선택할때 CPrintDialog 인쇄할때

25 25 소스 : "06-2 Graphs.zip" 메뉴항목추가 1 메뉴의 도형 (&G) 아래에메뉴항목추가 ID: ID_LINE_COLOR Caption: 선의색 (&L) Prompt: 선의색설정 n선의색 메뉴항목메시지핸들러추가 1 ClassWizard의 Message Map 페이지에서 Class name: CLines1Doc Object IDs: ID_LINE_COLOR Messages: COMMAND Add Function 버튼선택

26 26 2 Edit Code 버튼을눌러내용입력 void CGraphsDoc::OnLineColor() { CColorDialog dlg; if (dlg.domodal() == IDOK) m_pencolor = dlg.getcolor(); }

27 27 void CGraphsDoc::AddRect(CRect rect) { CRectangle r(rect, m_width, m_pencolor, m_brushcolor); m_rects.add(r); UpdateAllViews(NULL); SetModifiedFlag(TRUE); } CDocument::SetModifiedFlag() 도큐먼트의데이터가수정되었다고표시하는멤버함수이다. 이렇게하면문서를닫기전에저장할것인지묻는대화상자가나타난다. CDocument::UpdateAllViews() 도큐먼트의데이터가변경되었을경우, 도큐먼트에연결된모든뷰가화면을다시그릴수있도록변경사실을모든뷰에게통보하기위한메소드 통보받은뷰객체는전체를다시그린다. 파라미터는변경이발생한뷰객체의포인터이다. 그뷰는통보받지않는다. NULL 이면모든뷰에게통보한다.

28 문제 : 28 Graphs 에도형내부를칠할브러쉬의색을설정할수있는기능을구현하라

29 4. 툴바 (Toolbar) 29 학습목표 툴바버튼을추가한다 메뉴의 Edit 아래에 모두삭제 (&A) 메뉴항목을추가한다. 소스 : "06-3 Graphs.zip"

30 30 툴바버튼만들기 1 ResourceView에서 Toolbar 리소스를열고 2 다음과같이툴바버튼을그린다. 3 View 메뉴에서 Properties ID 는 ID_LINE_WIDTH 를선택.

31 31 4 다음과같이툴바버튼을그린다. 5 View 메뉴에서 Properties ID 는 ID_LINE_COLOR 를선택 툴바버튼은위와같이리소스를추가하고, ID를해당메뉴의 ID로선택해준다. 툴바버튼을누르면, 해당메뉴를누른것과같은메시지가전달되어, 메뉴의경우와같은메시지핸들러가실행되므로, 따로메시지핸들러를구현해줄필요가없다. 컴파일하고툴바버튼을눌러보라.

32 32 " 모두삭제 (&A)" 메뉴항목추가 1 메뉴의 Edit 아래에메뉴항목을추가하고 Menu Item Propties 대화상자에서 Seperator 항목을체크하여 Sperator 추가 2 메뉴의 Edit 아래에메뉴항목추가 ID: ID_EDIT_CLEAR_ALL Caption: 모두삭제 (&A) 메뉴항목메시지핸들러등록 1 ClassWizard의 Message Map 페이지에서 Class name: CLines1Doc Object IDs: ID_EDIT_CLEAR_ALL Messages: COMMAND Add Function 버튼선택 2OnEditClearAll멤버변수확인

33 33 3 Edit Code 버튼을눌러내용입력 void CGraphsDoc::OnEditClearAll() { m_rects.removeall(); SetModifiedFlag(); UpdateAllViews(NULL); } 툴바버튼만들기 툴바버튼의 ID: ID_EDIT_CLEAR_ALL 로지정

34 5. 메뉴항목상태갱신 (update) 34 소스 : "06-3 Graphs.zip" 메뉴항목객체상태갱신 MFC 프레임웍은메뉴항목을디스플레이하기전에메뉴항목을어떻게표시해야하는지결정하기위하여 UPDATE_COMMAND_UI 메시지를보낸다 UPDATE_COMMAND_UI 메시지핸들러에서는해당메뉴항목의 enable/disable 상태와 checked 상태를결정한다. " 모두삭제 " 메뉴항목은도큐먼트가비어있을때는 disable 되어있어야한다. 이렇게하기위해서 ID_EDIT_CLEAR_ALL의 UPDATE_COMMAND_UI 메시지핸들러는 m_rects가비어있으면 disable 상태로설정한다. 툴바아이템에대해서도 UPDATE_COMMAND_UI 메시지가발생하므로메뉴와처럼 enable/disable 상태와 checked 상태가결정된다

35 35 메뉴항목갱신과정 프레임웍은메뉴항목을갱신하기위해메뉴항목을그리기전에하나하나마다 UPDATE_COMMAND_UI 메시지를커맨드메시지전달과정을통해전달한다. 커맨드타겟 ( 메뉴나툴바버튼 ) 중 UPDATE_COMMAND_UI 메시지핸들러가있으면호출된다. 이 UPDATE_COMMAND_UI 메시지핸들러에서활성화상태를결정하여설정한다. UPDATE_COMMAND_UI 메시지핸들러가없을경우프레임웍은그메뉴항목의커맨드메시지핸들러가있는지조사한다. 커맨드메시지핸들러가없으면그메뉴항목을비활성화한다.

36 36 CCmdUI 클래스 UPDATE_COMMAND_UI 메시지핸들러는 CCmdUI* 타입의포인터를전달받는다. 이포인터를메뉴항목이나툴바버튼같은커멘트메시지를발생시키는사용자인터페이스객체에대한포인터이다. 이포인터를사용하여상태를설정한다. 상태바 (status bar) 에정보표시 상태바기능은 AppWizard가코드를생성한다 마우스가메뉴항목위를지나갈때그메뉴에대한설명이상태바에표시되는기능은이미구현되어있다. 리소스에디터로메뉴를정의할때 Prompt String에입력하는문자열이상태바에표시된다. Prompt String은 n 문자를중심으로앞과뒤로나뉘는데, 앞부분은상태바에표시되는내용이고뒷부분은툴팁 (tool tip) 이다.

37 37 메뉴항목의갱신메시지핸들러등록 1 ClassWizard의 Message Map 페이지에서 Class name: CGraphsDoc Object IDs: ID_EDIT_CLEAR_ALL Messages: UPDATE_COMMAND_UI 선택 2 OnUpdateEditClearAll 멤버변수확인 3 Edit Code 버튼을눌러내용입력 void CGraphsDoc::OnUpdateEditClearAll(CCmdUI* pcmdui) { pcmdui->enable(m_rects.getsize() > 0); }

38 38 OnUpdateEditClearAll() 은파라미터한개를갖는다. CCmdUI객체에대한포인터이며 Clear All 메뉴항목을가르킨다 m_rects가비어있으면메뉴항목을 disable시키고비어있지않으면 enable 시킨다 메뉴나툴바버튼이모두같이상태가갱신된다.

39 6. 메시지의종류 39 일반윈도우메시지 일반윈도우메시지는윈도우에직접전달된다 WM_PAINT와같은메시지는윈도우의일정영역을다시그려야할필요성이발생했을때그윈도우에직접전달된다 마우스메시지역시그마우스가위치한윈도우에직접전달된다 커맨드메시지 커맨드메시지는사용자의명령 ( 메뉴, 툴바, 액셀러레이터키 ) 에의해서발생한다. WM_COMMAND 메시지형태로어플리케이션에전달된다. 커맨드메시지를처리할클래스는정해져있지않고프로그래머가결정한다

40 40 Update Command UI 커맨드메시지 Update Command UI 커맨드메시지는어플리케이션프레임웍내부에서발생된다 메뉴아이템이나툴바버튼과같은사용자인터페이스객체의상태를갱신하려할때발생한다. 예를들면 현재어플리케이션의상태에서메뉴의어떤명령을수행할수없다면그메뉴를회색으로비활성화시켜야한다 사용자가메뉴바를클릭하여서브메뉴아이템들이디스플레이되어야할때 어플리케이션프레임웍은각메뉴아이템마다 Update Command UI 커멘드메시지를발생시킨다 이메시지핸들러에서메뉴아이템의상태를설정한다.

41 41 Control Notification 메시지 차일드컨트롤 (child control) 윈도우는자신의상태변경을부모윈도우인대화상자에게메시지를보내서알린다 예를들면 edit box에서키보드를눌러문자를입력하면 EN_UPDATE 란메시지가부모윈도우에전달된다.

42 7. 컨텍스트메뉴 42 학습목표 Graphs 의뷰에서마우스오른쪽버튼을클릭할때간단한컨테스트메뉴가표시되게해본다. 소스 : "06-4 Graphs.zip" 메뉴리소스만들기 1 메뉴에서 Insert Resource 선택 2 Insert Resource 대화상자에서 Menu 선택 3 메뉴바의맨윗단계에아이템하나추가캡션은아무거나상관없음 4 그메뉴아래에아래와같은메뉴항목추가 메뉴 ID 캡션 ID_LINE_WIDTH 선굵기 (&W) ID_LINE_COLOR 선의색 (&L) <sperator> ID_EDIT_CLEAR_ALL 전체삭제 (&A)

43 43 5 새로추가된메뉴리소스의 ID 를 IDR_POPUP_MENU 로설정 6 ClassWizard의 Message Map 페이지에서 Object ID CGraphsView Message WM_RBUTTONDOWN Member function OnRButtonDown 7 다음입력 void CLines1View::OnRButtonDown(UINT nflags, CPoint point) { CMenu menu; ClientToScreen(&point); menu.loadmenu(idr_popup_menu); CMenu* pmenu = menu.getsubmenu(0); pmenu->trackpopupmenu(tpm_leftalign TPM_RIGHTBUTTON, point.x, point.y, AfxGetApp()->m_pMainWnd); }

44 44 CMenu::LoadMenu() 는리소스에서메뉴를읽어오고 CMenu::GetSubMenu(n) 는메뉴의 n 번째서브메뉴에대한포인터를리턴한다. CMenu::TrackPopupMenu() 는스크린좌표로주어진위치에부동팝업메뉴를출력한다. 첫번째파라미터는메뉴항목을선택할마우스버튼을지정하는상수와, 마우스포인터에대한팝업메뉴의위치를지정하는상수이다 그다음파라미터는메뉴가표시될 x, y 좌표 마지막파라미터는메뉴를소유하는윈도우를지정한다. AfxGetApp()->m_pMainWnd 는어플리케이션메인프래임윈도우이다.

45 8. DDX 와 DDV 45 대화상자에서데이터읽어오기 CWnd클래스의 SetDlgItemText, GetDlgItemText 멤버함수를이용하여대화상자컨트롤에값을설정하거나입력된값을가져올수있다. 그런데 MFC가제공하는 DDX 방법을이용하면훨씬간편하다. DDX와 DDV를구현하기위해서는 ClassWizard를이용하여다이얼로그클래스의멤버변수를정의하고데이터타입과 validation rule을정의해주면된다 ClassWizard는대화상자클래스의생성자에멤버변수의초기화코드를첨가하고, 컨트롤과멤버변수간데이터교환을위해대화상자클래스의 DoDataExchange 멤버함수에 DDV, DDX 루틴첨가한다.

46 46 DDX (Dynamic Data Exchange) 대화상자의컨트롤과다이얼로그클래스의멤버변수간데이터교환을자동화한다. DDX를이용하면언제든지컨트롤의값을다이얼로그클래스의멤버변수에가져올수있고역도가능하다. 데이터를멤버변수에가져오려면 UpdateData(TRUE) 를호출하고반대로보내려면 UpdateData(FALSE) 를호출한다. 모달리스대화상자에서 Cancel버튼이선택된경우 DDX는발생하지않는다. 즉대화상자에입력한값을멤버변수에가져오지않는다 DDV (Dynamic Data Validation) 다어얼로그박스에입력되는데이터의유효화검증기능이다. 예를들면정수값의경우최대값최소값을검사하여이범위를벗어날경우경고메시지가저절로출력된다.

47 9. 메시지박스 47 소스 : "06-5 Msgbox.zip" 메시지박스를만들어본다 1 Dialog based 프로젝트를 Msgbox란이름으로생성한다. 2 다음과같이대화상자리소스편집

48 48 "Text" Edit Box의 ID: IDC_EDIT_TEXT "Caption" Edit Box의 ID: IDC_EDIT_CAPTION "Display" Push Button의 ID: IDC_BUTTON_DISPLAY "MB_ABORTRETRYIGNORE" 의 ID: ID_RADIO1 "MB_ICONEXCLAMATION" 의 ID: ID_RADIO7 각라디오버튼컨트롤그룹의첫라디오버튼컨트롤은 group 프러퍼티를체크해야한다.

49 3 다음과같이탭설정 49

50 50 4 ClassWizard를이용하여컨트롤과멤버변수연결 IDC_EDIT_TEXT CString m_text IDC_EDIT_CAPTION CString m_caption IDC_RADIO1 int m_type IDC_RADIO7 int m_icon 5 ClassWizard 를이용하여메시지핸들러작성 IDC_BUTTON_DISPLAY BN_CLICKED OnButtonDisplay()

51 6 다음입력 void CMsgboxDlg::OnButtonDisplay() { UpdateData(TRUE); int type, icon; switch (m_type) { case 0: type = MB_ABORTRETRYIGNORE; break; case 1: type = MB_OK; break; case 2: type = MB_OKCANCEL; break; case 3: type = MB_RETRYCANCEL; break; case 4: type = MB_YESNO; break; case 5: type = MB_YESNOCANCEL; break; 51

52 52 default: type = 0; }; } switch (m_icon) { case 0: icon = MB_ICONEXCLAMATION; break; case 1: icon = MB_ICONINFORMATION; break; case 2: icon = MB_ICONQUESTION; break; case 3: icon = MB_ICONSTOP; break; default: icon = 0; }; MessageBox(m_text, m_caption, type icon );

53 53 메시지박스에사용되는아이콘 아이콘모양 의미 메시지박스스타일 감탄부호 경고 MB_ICONEXCLAMATION 원안에 i 정보 MB_ICONINFORMATION 물음표 질문 MB_ICONQUESTION X 표시 에러 MB_ICONSTOP 메시지박스버튼 버튼스타일 버튼 MB_ABORTRETRYIGNORE Abort, Retry, Ignore MB_OK OK MB_OKCANCEL OK, Cancel MB_RETRYCANCEL Retry, Cancel MB_YESNO Yes, No MB_YESNOCANCEL Yes, No, Cancel

54 54 메시지박스리턴값 리턴값 눌려진버튼 IDABORT Abort IDCANCEL Cancel IDIGNORE Ignore IDNO No IDOK Ok IDRETRY Retry IDYES Yes

55 10. 다이얼로그바 55 다이얼로그바란? 컨트롤바는상태바, 툴바, 다이얼로그바세타입이있다. 다이얼로그바는툴바와유사하지만툴바와는달리버튼, 콤보박스, 리스트박스, 프로그래스컨트롤과같은컨트롤들을포함할수있다. 프로젝트생성 1 DlgBar 란이름의 MDI 유형프로젝트를생성한다. 2 새다이얼로그리소스 IDD_DIALOG1 작성 컨트롤 ID 컨트롤유형 캡션 IDC_EDIT1 Edit box IDC_BUTTON1 Pushbutton Button1

56 56 3 다이얼로그의리소스속성 Style: Child Border: None 4 MainFrm.h 에다음과같이입력 protected: // control bar embedded members CStatusBar m_wndstatusbar; CToolBar m_wndtoolbar; CDialogBar m_dlgbar; // Generated message map functions protected: //{{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpcreatestruct); // NOTE - the ClassWizard will add and remove member functions here. // DO NOT EDIT what you see in these blocks of generated code! //}}AFX_MSG afx_msg void OnButton1(); DECLARE_MESSAGE_MAP() };

57 57 5 MainFrm.cpp BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd) //{{AFX_MSG_MAP(CMainFrame) // NOTE - the ClassWizard will add and remove mapping macros here. // DO NOT EDIT what you see in these blocks of generated code! ON_WM_CREATE() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON1, OnButton1) END_MESSAGE_MAP() int CMainFrame::OnCreate(LPCREATESTRUCT lpcreatestruct) { // 중간생략 m_dlgbar.create( this, IDD_DIALOG1, CBRS_TOP, IDD_DIALOG1); m_dlgbar.setwindowtext( "Dialog Bar" ); m_dlgbar.enabledocking( CBRS_ALIGN_ANY ); DockControlBar( &m_dlgbar ); return 0; }

58 58 void CMainFrame::OnButton1() { CString s; m_dlgbar.getdlgitem(idc_edit1)->getwindowtext(s); AfxMessageBox( s ); } 다이얼로그바는모달리스 (modeless) 대화상자와유사한윈도우형태이며툴바처럼메인프레임에부착될수있다. 툴바와는달리대화상자처럼모든컨트롤들을포함할수있다. 다이얼로그바에있는컨트롤에서발생하는메시지는다이얼로그바의부모에게전달된다. 그러나이메시지핸들러를등록하는데 ClassWizard를사용할수없다. 따라서직접메시지맵에연결항목을추가해주어야한다.

59 11. 상태바 59 상태바에현재시각표시하기 indicators 배열에새로운 ID 추가 문자열테이블에새로운디폴트텍스트아이템을첨가 상태바 pane을위한갱신명령핸들러를정의 타이머메시지처리핸들러작성 소스 : "06-6 SBar.zip" 프로젝트생성 1 SBar 란이름의 SDI 유형프로젝트를생성한다. 2 메뉴에서 View, Resource Symbols을선택하여다음과같이새로운리소스심볼을정의한다. 3 Resource Symbols 대화상자에서 New 버튼을누르고새리소스심볼명으로 ID_INDICATOR_CURRENT_TIME을입력한다. 4 MainFrm.cpp화일의선두에서 indicators 배열을다음과같이편집한다.

60 60 static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, ID_INDICATOR_CURRENT_TIME }; 5 CMainFrame::OnCreate() 함수의마지막에다음을추가한다. } m_wndstatusbar.setpaneinfo(4, ID_INDICATOR_CURRENT_TIME, SBPS_POPOUT, 80 ); return 0;

61 61 6 스트링테이블에 ID_INDICATOR_CURRENT_TIME란 ID의 "00:00:00 AM" 스트링리소스를추가한다. 7 ClassWizard를이용하여 CMainFrame클래스에 WM_TIMER 메시지핸들러를작성한다. void CMainFrame::OnTimer(UINT nidevent) { m_wndstatusbar.invalidaterect(null); } 8 CMainFrame 클래스에다음과같이 OnUpdateTimer() 멤버함수의정의를추가한다. // Generated message map functions protected: //{{AFX_MSG(CMainFrame) afx_msg int OnCreate(LPCREATESTRUCT lpcreatestruct); afx_msg void OnTimer(UINT nidevent); //}}AFX_MSG afx_msg void OnUpdateTimer(CCmdUI* pcmdui); DECLARE_MESSAGE_MAP() };

62 62 9 다음과같이메시지멥에 OnUpdateTimer 항목을추가한다. BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_TIMER() //}}AFX_MSG_MAP ON_UPDATE_COMMAND_UI(ID_INDICATOR_CURRENT_TIME, OnUpdateTimer) END_MESSAGE_MAP() 10 OnUpdateTimer() 멤버함수를정의한다. void CMainFrame::OnUpdateTimer(CCmdUI* pcmdui) { pcmdui->enable(); CTime thetime = CTime::GetCurrentTime(); CString sztime = thetime.format("%i:%m:%s %P"); pcmdui->settext(sztime); }

63 63 CMainFrame::OnCreate() 에서 CWnd::SetTimer() 메소드를호출하여 1000 밀리초단위로타이머를설정하였다 밀리초마다 WM_TIMER 이벤트가발생하여 CMainFrame::OnTimer() 이벤트핸들러가실행된다. CMainFrame::OnTimer() 이벤트핸들러에서는 CWnd::InvalidateRect() 를호출하여상태바를무효화시켜서다시그리게만든다. 상태바가무효화될때, MFC 프레임웍은 UPDATE_COMMAND_UI 이벤트핸들러를사용해서각 pane을갱신한다. 대부분의사용자인터페이스객체들을위한 UPDATE_COMMAND_UI 이벤트핸들러는 ClassWizard를이용하여만들수있지만, 상태바 pane 핸들러는직접작성해야한다. 8번 9번 10번절차는이렇게상태바의 UPDATE_COMMAND_UI 핸들러를만드는절차이다.

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D> 09: 대화상자 학습목표 대화상자편집기의사용법을익힌다. 모드형대화상자와비모드형대화상자의차이점을이해하고작성방법을익힌다. 대화상자기반응용프로그램의원리를이해하고작성방법을익힌다. 공통대화상자를다루는방법을배운다. 개요 (1/2) 대화상자 다양한컨트롤을포함하고있는일종의윈도우 사용자로부터입력을받거나정보를출력 1 개요 (2/2) 대화상자종류 모드형대화상자 대화상자를닫지않으면응용프로그램이더이상진행할수없다.

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#1) 2013.09.27. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window

More information

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D> 06: 사용자인터페이스 학습목표 메뉴명령을처리하고메뉴항목을적절하게갱신하는기법을익 힌다. 컨텍스트메뉴와시스템메뉴를다루는방법을익힌다. 툴바를생성하고사용하는방법을익힌다. 상태바를생성하고사용하는방법을익힌다. 메뉴용어 (1/6) 최상위메뉴 = 메뉴바 최상위메뉴 = 메뉴바 1 메뉴용어 (2/6) 메뉴항목 용어 의미 1 명령항목명령 (Command) 을수행하는메뉴항목.

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#2) 2012.10.08. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window

More information

Microsoft PowerPoint - hci2-lecture9.ppt

Microsoft PowerPoint - hci2-lecture9.ppt Overview 대화상자 대화상자, 대화상자템플렛, 대화상자편집기 모드형대화상자와비모드형대화상자의차이 대화상자기반응용프로그램 HCI Programming 2 (321190) 2007 년가을학기 11/19/2007 박경신 2 대화상자 대화상자 (Dialog Box) 다양한컨트롤을포함하고있는일종의윈도우 사용자로부터입력을받거나정보를출력 정적, 버튼, 편집등다양한컨트롤들을배치하고관리하는윈도우

More information

Microsoft PowerPoint - hci2-lecture5-messagemap.ppt

Microsoft PowerPoint - hci2-lecture5-messagemap.ppt Windows 와 C++ MFC Message Map HCI Programming 2 (321190) 2008년가을학기 10/14/2008 박경신 C++ 의다형성 (Polymorphsim) 기반클래스의어떤멤버함수를파생클래스에서재정의 (overriding) 하기위해서는기반클래스의그멤버함수가가상함수 (virtual function) 로정의되어야함 MFC 의 CWnd

More information

Microsoft PowerPoint - hci2-lecture6.ppt

Microsoft PowerPoint - hci2-lecture6.ppt Overview 사용자인터페이스 메뉴명령을처리하고메뉴항목을적절하게갱신기법 컨텍스트메뉴와시스템메뉴를다루는방법 툴바를생성하고사용하는방법 상태바를생성하고사용하는방법 HCI Programming 2 (321190) 2007년가을학기 11/2/2007 박경신 2 메뉴용어 메뉴 프로그램에서선택할수있는명령집합 계층적요소로구성된사용자인터페이스 최상위메뉴 (top-level)

More information

5장 MFC기반 다지기

5장 MFC기반 다지기 5 장 MFC 기반다지기 김성영교수 금오공과대학교 컴퓨터공학부 들어가기 (1) pp.132 ~ 138 비주얼스튜디오에서 MFC 어플리케이션작성 참조 시스템메뉴 메뉴 최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 (Client Area) 스크롤바 상태표시줄 2 들어가기 (2) 3 들어가기 (3) 4 들어가기 (4) 솔루션탐색기확인 WinMain() 함수가없다?

More information

Microsoft PowerPoint - hci2-lecture6.ppt

Microsoft PowerPoint - hci2-lecture6.ppt Overview 사용자인터페이스 메뉴명령을처리하고메뉴항목을적절하게갱신기법 컨텍스트메뉴와시스템메뉴를다루는방법 툴바를생성하고사용하는방법 상태바를생성하고사용하는방법 HCI Programming 2 (321190) 2008년가을학기 10/28/2008 박경신 2 메뉴용어 메뉴 프로그램에서선택할수있는명령집합 계층적요소로구성된사용자인터페이스 최상위메뉴 (top-level)

More information

Microsoft PowerPoint _대화상자.ppt

Microsoft PowerPoint _대화상자.ppt 7 장. 대화상자 모달대화상자 (modal dialog box) DDX (Dialog Data Exchange) 모델리스대화상자 (modeless dialog box) 공통대화상자의사용 Paint3.dsw 순천향대학교정보기술공학부이상정 1 모달대화상자 (modal dialog box) 순천향대학교정보기술공학부이상정 2 대화상자의종류 모달대화상자 (modal

More information

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

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID android:title= 항목제목 /> </menu> public boolean oncreateoptionsmenu(menu menu) { getme 8 차시메뉴와대화상자 1 학습목표 안드로이드에서메뉴를작성하고사용하는방법을배운다. 안드로이드에서대화상자를만들고사용하는방법을배운다. 2 확인해볼까? 3 메뉴 1) 학습하기 [ 그림 8-1] XML 을이용한옵션메뉴설정방법 public boolean

More information

Microsoft PowerPoint - CPP_chap7_dialogbox(2)

Microsoft PowerPoint - CPP_chap7_dialogbox(2) 7 장. 대화상자컨트롤 (2) 1 1. 버튼컨트롤 2 학습목표버튼컨트롤들을포함한다이얼로그박스를만들어본다 소스 : "07-1 Ctrl1.zip" 다이얼로그박스만들기 1 Ctrl1 라는이름의 Dialog based 프로젝트를생성한다 2 IDD_CTRL1_DIALOG 다이얼로그박스리소스수정 3 3 컨트롤아이디지정컨트롤 ID 컨트롤유형 캡션 IDC_STATIC Static

More information

untitled

untitled MFC MFC MFC AppWizard 來 MFC MFC 類 了 類 Document/View MFC Visual C++ AppWizard MFC 不 力 亮 來 不 Document View 不 列 AppWizard View 類 CEditView 列 列 說 行 不 了 Document/View MFC Application Framework 靈 OLE Document

More information

Microsoft Word - hci08-final-answer.doc

Microsoft Word - hci08-final-answer.doc 기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 다음문장의내용이맞으면 True, 틀리면 False를표시하시오.

More information

<4D F736F F F696E74202D20C1A C0E520B5B5C5A5B8D5C6AE20C6C4C0CF20C0D4C3E2B7C220B9D720B4D9BEE7C7D120BAE420C5ACB7A1BDBA2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A C0E520B5B5C5A5B8D5C6AE20C6C4C0CF20C0D4C3E2B7C220B9D720B4D9BEE7C7D120BAE420C5ACB7A1BDBA2E BC8A3C8AF20B8F0B5E55D> 제 10 장다양한뷰클래스 10.1 도큐먼트 10.2 파일입출력 10.3 다양한뷰클래스 실습 10-1 Formview를이용한문자를출력하고파일입출력 10.4 분할윈도우 실습 10-2 정적분할윈도우를이용한학생정보프로그램 10.5 다중뷰 실습 10-3 다중뷰만들기 도큐먼트 CDocument 클래스 데이터를관리하는클래스 OnNewDocument() 함수 새로운도큐먼트를만드는기능

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 5. 사용자인터페이스 (#1) 2012.10.11. 오병우 컴퓨터공학과금오공과대학교 Contents Menu ToolBar DialogBar StatusBar MessageBox Mouse Cursor Program Icon CFormView Department of Computer Engineering 2 응용프로그램의처리제어

More information

Programming hwp

Programming hwp 4 장대화상자기반응용프로그램 3장에서는윈도우응용프로그램작성을위한 MFC 프로그래밍에텍스트편집기만을사용하였으나, 이장에서부터는응용프로그램마법사 (AppWizard), 리소스편집기, 클래스마법사 (Class Wizard) 등의도구를활용한다. 이러한도구들의이용으로전체프로그램소스에서프로그래머가직접코딩하는분량을크게줄일수있어빠른시간안에응용프로그램의개발이가능해진다. 또한

More information

그래픽 프로그래밍

그래픽 프로그래밍 제 13 장그래픽프로그래밍 13.1 베지어곡선 실습 13-1 알고리즘을통한베지어곡선그리기 실습 13-2 컨트롤포인트이동및베지어곡선 해상도설정하기 그래픽프로그래밍 베지어곡선 베지어곡선알고리즘은곡선을생성하는대표적이고기본이되는알고리즘이다. MFC 에서의베지어곡선함수 BOOL PolyBezier(const POINT* lppoints, int ncount); lppoints

More information

윈도우 프로그래밍의 개념

윈도우 프로그래밍의 개념 제 10 장다양한뷰클래스 10.1 도큐먼트 10.2 파일입출력 10.3 다양한뷰클래스 실습 10-1 Formview를이용한문자를출력하고파일입출력 10.4 분할윈도우 실습 10-2 정적분할윈도우를이용한학생정보프로그램 10.5 다중뷰 실습 10-3 다중뷰만들기 CDocument 클래스 데이터를관리하는클래스 OnNewDocument() 함수 새로운도큐먼트를만드는기능

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

슬라이드 1

슬라이드 1 13장직렬화 김성영교수 금오공과대학교 컴퓨터공학부 도큐먼트 / 뷰구조 (1) 도큐먼트와뷰 디스크에저장된파일데이터를읽는경우 도큐먼트객체 뷰객체 파일 사용자 읽기 화면표시 2 도큐먼트 / 뷰구조 (2) 도큐먼트와뷰 사용자가데이터를입력하는경우 도큐먼트객체 뷰객체 파일 사용자 저장 입력 3 도큐먼트 / 뷰구조 (3) 도큐먼트와뷰 입력된데이터를디스크파일에저장하는경우

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 객체지향프로그래밍응용 Chap 2. 프로그램의뼈대 2012.09.17. 오병우 컴퓨터공학과금오공과대학교 윈도우프로그램각부분의명칭 타이틀바 메뉴 프레임윈도우오브젝트 메뉴오브젝트 도구모음 툴바오브젝트 스크롤바 클라이언트영역 뷰오브젝트 상태표시줄 상태바오브젝트 Department of Computer Engineering 2 Win32 Application API

More information

Programming hwp

Programming hwp 6 장 MDI 응용프로그램 MDI 응용프로그램의형태 응용프로그램마법사 (AppWizard) 가생성하는 MDI 응용프로그램의주실행창을나타내는객체는 CFrameWnd에서파생된클래스인스턴스이며, 기본외형은아래그림과같이메뉴와툴바를포함한다. 문서내용을보여주는뷰들은이창의클라이언트영역안에자식창으로만들어지는윈도우들을통해표시된다. 주실행창의클라이언트영역안에는여러개의자식창이만들어질수있으며,

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

윈도우 프로그래밍의 개념

윈도우 프로그래밍의 개념 제 8 장컨트롤과리소스 II 8.1 탭컨트롤 8.2 슬라이더컨트롤실습 8-1 도형의종류와색상출력하기 8.3 스핀컨트롤 8.4 프로그레스바컨트롤 8.5 IP 주소컨트롤 8.6 네트워크주소컨트롤 8.7 날짜 / 시간컨트롤 8.8 애니메이트컨트롤실습 8.2 데이터전송시뮬레이터작성하기 컨트롤및리소스 리스트컨트롤 (List Control) 트리컨트롤 (Tree Control)

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Microsoft PowerPoint - CPP_chap3

Microsoft PowerPoint - CPP_chap3 3 장. 마우스와키보드메시지 1 1. 능동적입력받기와수동적입력받기 2 학습목표 이벤트위주로직개념을파악한다 메시지개념을파악한다 능동적입력받기 절차적로직프로그램에서입력받기 언제무엇을입력받을지는프로그램의절차적로직에서결정 예 : 텍스트모드 C 프로그램에서문자열을입력받는경우 수동적입력받기 이벤트위주로직프로그램에서입력받기 윈도우환경에서마우스나키보드입력은 Windows

More information

Visual C++의 개요

Visual C++의 개요 2.1 MFC 의개요 2.2 MFC 프로그램의구조 2.3 Visual C++ 의시작실습 2-1 Application Wizard 익히기 2.4 SDI 템플릿 2.5 MDI 템플릿 2.6 MFC 애플리케이션아키텍처실습 2-2 간단한 MFC 프로젝트만들기 MFC 의개요 MFC 윈도우애플리케이션을생성하기위해만들어진 C++ 클래스라이브러리 애플리케이션프레임워크를제공

More information

<B0EDB1DEC7C1B7CEB1D7B7A1B9D6284D DBFE4BEE0C1A4B8AE28B9DAB1E2C8AB292E687770>

<B0EDB1DEC7C1B7CEB1D7B7A1B9D6284D DBFE4BEE0C1A4B8AE28B9DAB1E2C8AB292E687770> I N D E X 목원대학교컴퓨터공학부 - 수업내용요약 - 교과목 : 고급프로그래밍1 구분 : (1~3 중에서 ) PART 1 학기 : 2013년 1학기 ( ~5주차 ) 교수 : 박기홍 참고문헌 : Visual C++ 2000 MFC Programming ( 생능출판사, 2013) 윈도우프로그래밍-Visual C++ MFC Programming ( 한빛미디어,

More information

Microsoft Word - hci07-final-answer.doc

Microsoft Word - hci07-final-answer.doc 기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 다음문장의내용이맞으면 True, 틀리면 False를표시하시오.

More information

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

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

어댑터뷰

어댑터뷰 04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결

More information

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

Microsoft PowerPoint - 09-CE-5-윈도우 핸들 순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트 윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정

More information

Microsoft PowerPoint - 04windows.ppt

Microsoft PowerPoint - 04windows.ppt Game Programming I Windows 프로그래밍 (1) March 27, 2006 목표 윈도우프로그래밍에서이용되는이벤트구동프로그래밍모델의이해 Direct3D 를이용하는윈도우어플리케이션의작성을위한최소한의코드이해 윈도우 (Win32) 어플리케이션 Direct3D API ( 어플리케이션프로그래밍인터페이스 ) 를이용하기위해필요 Win32 API 를이용해작성

More information

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770> 제목 : 미디어정보처리프로그래밍실습모음 일시 : 2002. 6. 15 작성자 : 성용철학번 : 한남대학교정보통신멀티미디어공학부 ( 전자정보통신전공 ) 미디어정보처리프로그래밍실습숙제설명 1.256 X 256 grayscale 의디스플레이프로그램 Resource View 의 menu item 에서 Display 밑에 Raw gray 라마든다음에그림과같이 ID 와

More information

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D> 01 : 윈도우프로그래밍기초 학습목표 윈도우운영체제와윈도우응용프로그램의특징을이해한다. SDK 응용프로그램작성과정, 기본구조, 동작원리를이해한다. MFC 응용프로그램작성과정, 기본구조, 동작원리를이해한다. 비주얼 C++ 개발환경사용법을익힌다. 윈도우운영체제특징 (1/3) 그래픽사용자인터페이스 1 윈도우운영체제특징 (2/3) 메시지구동구조 이벤트발생... 대기

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

MFC 프로그래밍

MFC 프로그래밍 윈도우프로그래밍 Visual C++ 2010 MFC Programming 1 장. 윈도우프로그래밍기초 윈도우운영체제의특징 그래픽사용자인터페이스 시스템메뉴타이틀바메뉴최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 상태표시줄 스크롤바 윈도우운영체제의특징 메시지구동구조 윈도우운영체제의특징 멀티태스킹과멀티스레딩 멀티태스킹 (Multitasking) 운영체제가여러개의응용프로그램을동시에실행

More information

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

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

윈도우 프로그래밍의 개념

윈도우 프로그래밍의 개념 제 9 장고급컨트롤과리본 9.1 MFC Feature 컨트롤실습 9-1 간단한명함제작프로그램만들기 9.2 리본실습 9.2 리본메뉴및각종리본컨트롤사용하기 MFC Feature 컨트롤 MFC 버튼컨트롤 MFC Button 은기본적으로 CButton 과같은속성을갖고있음. 사용목적에따라 Radio, Check, Command 버튼으로스타일을변경할수있다. CButton

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

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

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

[제1강] 텍스트를 입력하세요

[제1강] 텍스트를  입력하세요 제 10 강 폼뷰 (1) Visual C++ 프로그래밍 컴퓨터과학과 김강현교수 제 10 강의학습내용 FormView 프로젝트생성리소스편집 / 컨트롤추가멤버변수추가멤버함수추가파일열기와저장파일열기대화상자 학습내용 1 부 FormView 프로젝트생성 Static Text, Edit Control,Spin Control,Button 멤버변수 (Control 형 /Value

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

DLL(Dynamic Linked Library)

DLL(Dynamic Linked Library) 제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일

More information

Microsoft PowerPoint - 09-CE-14-리스트콤보박스

Microsoft PowerPoint - 09-CE-14-리스트콤보박스 순천향대학교컴퓨터학부이상정 1 학습내용 리스트박스컨트롤 다이얼로그와리스트박스 콤보박스컨트롤 순천향대학교컴퓨터학부이상정 2 리스트박스컨트롤 순천향대학교컴퓨터학부이상정 3 리스트박스컨트롤 사용자가선택할수있는항목들을여러개나열해두고선택할수있는컨트롤 윈도우클래스의이름은 "listbox" 생성예 hlist=createwindow(l"listbox",null,ws_child

More information

Dialog Box 실행파일을 Web에 포함시키는 방법

Dialog Box 실행파일을 Web에 포함시키는 방법 DialogBox Web 1 Dialog Box Web 1 MFC ActiveX ControlWizard workspace 2 insert, ID 3 class 4 CDialogCtrl Class 5 classwizard OnCreate Create 6 ActiveX OCX 7 html 1 MFC ActiveX ControlWizard workspace New

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

歯Lecture2.PDF

歯Lecture2.PDF VISUAL C++/MFC Lecture 2? Update Visual C ++/MFC Graphic Library OpenGL? Frame OpenGL 3D Graphic library coding CLecture1View? OpenGL MFC coding Visual C++ Project Settings Link Tap Opengl32lib, Glu32lib,

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Programming hwp

Programming hwp 4.2 메뉴및컨트롤들의추가 이절에서다룰예제프로그램은덧셈 / 곱셈문제를제시하고답을검사해주는프로그램이다. 이프로그램을실행하면두개의한자리숫자들이무작위로생성되어 "Number 1" 과 "Number 2" 옆의에디트컨트롤에나타난다. Exec 메뉴안에는 Renew라는메뉴항목이있으며, 이메뉴항목을선택할때마다숫자들은무작위로변경된다. Exec 메뉴안의 Change Level

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

Microsoft PowerPoint - hci2-lecture10.ppt

Microsoft PowerPoint - hci2-lecture10.ppt Overview 도큐먼트 / 뷰구조 HCI Programming 2 (321190) 2008 년가을학기 11/25/2008 박경신 도큐먼트 / 뷰구조 도큐먼트템플렛 (Document Template) SDI (Single Document Interface) 응용프로그램의기본구조 MDI (Multiple Document Interface) 응용프로그램의기본구조

More information

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

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

More information

윈도우 프로그래밍의 개념

윈도우 프로그래밍의 개념 제 7 장컨트롤과리소스 I 7.1 리스트컨트롤실습 7-1 대화상자에리스트컨트롤만들기 7.2 트리컨트롤실습 7-2 대화상자에트리컨트롤만들기 컨트롤및리소스 리스트컨트롤 (List Control) 트리컨트롤 (Tree Control) 탭컨트롤 (Tab Control) 슬라이드컨트롤 (Slider Control) 스핀컨트롤 (Spin Control) 프로그레스바컨트롤

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

Programming hwp

Programming hwp CHelloWindow::CHelloWindow() { CRect r; // Create the window itself Create(NULL, _T("CStatic Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle GetClientRect(&r);

More information

04장 메시지 처리 유형

04장 메시지 처리 유형 4 장 메시지처리유형 김성영교수 금오공과대학교 컴퓨터공학부 메시지처리유형 윈도우에서발생하는이벤트에대응하는윈도우메시지를처리 2 장및 3 장의실습예제 자식윈도우에서발생한이벤트를부모윈도우에서처리 WM_COMMAND 메시지처리 실습 4.2 자식윈도우에서발생한사건유형을구분하여처리 Notification code 처리 실습 4.7 Notification code 의한계를극복하여처리

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

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

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

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

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

게임 기획서 표준양식 연구보고서

게임 기획서 표준양식 연구보고서 ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ ᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞᆞ

More information

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi 소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

C++ Programming

C++ Programming C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )

More information

Microsoft PowerPoint - 07-Data Manipulation.pptx

Microsoft PowerPoint - 07-Data Manipulation.pptx Digital 3D Anthropometry 7. Data Analysis Sungmin Kim SEOUL NATIONAL UNIVERSITY Body 기본정보표시 Introduction 스케일조절하기 단면형상추출 단면정보관리 3D 단면형상표시 2 기본정보표시및스케일조절 UI 및핸들러구성 void fastcall TMainForm::BeginNewProject1Click(TObject

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력

More information

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

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

제8장 자바 GUI 프로그래밍 II

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 03 장 영상처리를위한 Visual C++ 디지털영상파일포맷 MFC AppWizard[exe] 를이용한 MFC 프로젝트작성 MFC 를이용한영상처리입. 출력프로그램작성 MFC 를이용한영상축소 MFC 를이용한영상확대 MFC 를이용한양자화영상처리 한빛미디어 ( 주 ) 학습목표 3 장. 영상처리를위한 Visual C++ 영상처리에사용되는 RAW 파일포맷을이해한다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074> 객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

Microsoft PowerPoint - hci2-lecture7.ppt

Microsoft PowerPoint - hci2-lecture7.ppt Overview 파일입출력 CFile 클래스를이용한파일입출력기법 도큐먼트 / 뷰구조이해 CArchive 클래스를이용한직렬화기법 HCI Programming 2 (321190) 2007 년가을학기 11/5/2007 박경신 2 파일입출력방법 일반파일입출력 CFile ( 파생 ) 클래스 Read(), Write() 등의함수이용 직렬화 (serialization)

More information

슬라이드 1

슬라이드 1 이벤트 () 란? - 사용자가입력장치 ( 키보드, 마우스등 ) 등을이용해서발생하는사건 - 이벤트를처리하는프로그램은이벤트가발생할때까지무한루프를돌면서대기상태에있는다. 이벤트가발생하면발생한이벤트의종류에따라특정한작업을수행한다. - 이벤트관련프로그램작성을위해 java.awt.event.* 패키지가필요 - 버튼을누른경우, 1 버튼클릭이벤트발생 2 발생한이벤트인식 ( 이벤트리스너가수행

More information

Microsoft PowerPoint - hci2-lecture3.ppt

Microsoft PowerPoint - hci2-lecture3.ppt Overview MFC 프로그램구조 HCI Programming 2 (321190) 2007년가을학기 10/1/2007 박경신 MFC 개요 MFC 발전과정과주요특징이해 MFC 구조 MFC 구성요소, 클래스계층도, 주요클래스 MFC 최상위클래스인 CObject 가제공하는서비스이해 MFC 가제공하는전역함수사용법 MFC 응용프로그램구조 MFC Application

More information

윈도우즈 프로그래밍

윈도우즈 프로그래밍 8 장대화상자 VS 2015 008. 윈도우프로그래밍 DB & Mining LAB. Korea University Updated 2010. 10. 23 Updated 2012. 10. 02 Updated 2015. 09. 23 이종욱 eastwest9@korea.ac.kr 1 8-1 대화상자 (1/3) 사용자로부터끊임없이지시를받고사용자의지시에따라작업을하고 작업한결과를사용자에게보고한다.

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

More information

Microsoft PowerPoint - hci2-lecture3.ppt

Microsoft PowerPoint - hci2-lecture3.ppt Overview MFC 프로그램구조 HCI Programming 2 (321190) 2008년가을학기 9/30/2008 박경신 MFC 개요 MFC 발전과정과주요특징이해 MFC 구조 MFC 구성요소, 클래스계층도, 주요클래스 MFC 최상위클래스인 CObject 가제공하는서비스이해 MFC 가제공하는전역함수사용법 MFC 응용프로그램구조 MFC Application

More information

VISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical Use

VISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical Use VISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical User Interface) 형태로작성된프로그램은사용자가자신의의도를쉽게반영하고그결과를빠르게눈으로확인할수있다는장점이있다.

More information

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

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

More information

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp

Lab 4. 실습문제 (Circular singly linked list)_해답.hwp Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular

More information

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 헬로, 안드로이드 4 주차 사용자인터페이스디자인하기 (2) 강대기동서대학교컴퓨터정보공학부 학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다. 차례 메뉴추가하기 Settings 추가하기 새게임시작하기

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information