Microsoft PowerPoint - hci2-lecture10.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - hci2-lecture10.ppt"

Transcription

1 Overview 도큐먼트 / 뷰구조 HCI Programming 2 (321190) 2008 년가을학기 11/25/2008 박경신 도큐먼트 / 뷰구조 도큐먼트템플렛 (Document Template) SDI (Single Document Interface) 응용프로그램의기본구조 MDI (Multiple Document Interface) 응용프로그램의기본구조 명령라우팅의개념 여러개의뷰또는여러개의도큐먼트타입을생성및활용 2 도큐먼트 / 뷰구조 파일도큐먼트객체뷰객체사용자 도큐먼트 / 뷰구조 SDI (Single-Document Interface) 하나의응용프로그램에서어느한순간에하나의문서만을대상으로작업할수있는사용자인터페이스 MDI (Multiple- Document Interface) 하나의응용프로그램에서동시에두개이상의문서를대상으로작업할수있는사용자인터페이스 Class Document View 역할 데이터를저장하거나읽기데이터의변경사항이생기면뷰의화면을갱신 데이터를화면에표시사용자와의상호작용 3 4

2 SDI (Single Document Interface) MDI (Multiple Document Interface) CSingleDocTemplate CMultiDocTemplate 5 6 Document Template 주요객체의생성관계 도큐먼트, 프레임윈도우, 뷰클래스정보를유지하는클래스 응용프로그램클래스의 InitInstance() 에서생성 MFC 클래스계층도 BOOL CExSDIApp::InitInstance()... CSingleDocTemplate* pdoctemplate; pdoctemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CExSDIDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CExSDIView)); AddDocTemplate(pDocTemplate);... 7 생성주체 생성되는것 1응용프로그램객체 2도큐먼트템플릿객체 도큐먼트템플릿객체 3도큐먼트객체, 4프레임윈도우객체 프레임윈도우객체 5뷰객체

3 //(1) 응용프로그램클래스 (CWinApp 파생 ) class CExSDIApp : public CWinApp BEGIN_MESSAGE_MAP(CExSDIApp, CWinApp) // Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) END_MESSAGE_MAP() BOOL CExSDIApp::InitInstance() CSingleDocTemplate* pdoctemplate; pdoctemplate = new CSingleDocTemplate( // 도큐먼트탬플릿객체생성 IDR_MAINFRAME, // 리소스 ID RUNTIME_CLASS(CExSDIDoc), //Document RUNTIME_CLASS(CMainFrame), //main SDI frame window RUNTIME_CLASS(CExSDIView)); //View AddDocTemplate(pDocTemplate); // 응용프로그램객체에탬플릿객체추가 // command line 을분석및처리 // 생성된메인프레임윈도우를화면에보이기 m_pmainwnd->showwindow(sw_show); m_pmainwnd->updatewindow(); //WM_PAINT 메시지보내기 return TRUE; 9 //(2) 프레임윈도우클래스 (CFrameWnd 파생 ) // 동적객체생성기능을사용하기위한매크로 //MainFrm.h class CMainFrame : public CFrameWnd protected: DECLARE_DYNCREATE(CMainFrame)// 동적객체생성을위한매크로선언부 //MainFrm.cpp IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) // 동적객체생성을위한매크로구현부 10 //(3) 뷰클래스 (CView 파생 ) //ExSDIView.h class CExSDIView : public CView protected: DECLARE_DYNCREATE(CExSDIView) public: virtual void OnDraw(CDC* pdc); //ExSDIView.cpp IMPLEMENT_DYNCREATE(CExSDIView, CView) void CExSDIView::OnDraw(CDC* pdc) CExSDIDoc* pdoc = GetDocument(); // 도큐먼트객체얻어오기 CString str = pdoc->m_docstr; // 도큐먼트의멤버변수접근 CFont newfont, *poldfont=null; newfont.createpointfont(200, "Arial"); poldfont =pdc->selectobject(&newfont); pdc->textout(100, 100, "SDI Test Program - View"); //view의문자열출력 pdc->textout(100, 140, str); //document의문자열출력 11 //(3) 도큐먼트클래스 (CDocument 파생 ) //ExSDIDoc.h class CExSDIDoc : public CDocument protected: DECLARE_DYNCREATE(CExSDIDoc) public: virtual BOOL OnNewDocument(); //[ 새파일 ] 선택시호출되는가상함수 virtual void Serialize(CArchive& ar); // 파일을읽거나저장하기위한함수 CString m_docstr; // 멤버변수 //ExSDIDoc.cpp IMPLEMENT_DYNCREATE(CExSDIDoc, CDocument) BOOL CExSDIDoc::OnNewDocument() // 새파일선택시초기화코드포함 if (!CDocument::OnNewDocument()) return FALSE; return TRUE; m_docstr="sdi Test Program - DOC"; // 멤버변수초기화 void CExSDIDoc::Serialize(CArchive& ar) if (ar.isstoring()) ar << m_docstr;// 파일에저장하기위한코드 else ar >> m_docstr; // 파일로부터읽기위한코드 12

4 SDI 응용프로그램구조 SDI 응용프로그램기본구조 SDI 응용프로그램구조 SDI 응용프로그램구조 분할윈도우사용시 응용프로그램 (CWinApp) 도큐먼트템플릿 (CSingleDocTemplate) 프레임윈도우 (CFrameWnd) 도큐먼트 (CDocument) 뷰 (CView) 응용프로그램 (CWinApp) 도큐먼트템플릿 (CSingleDocTemplate) 프레임윈도우 (CFrameWnd) 도큐먼트 (CDocument) 뷰 (CView) 뷰 (CView) 하나의도큐먼트만존재 - 새로운문서를생성하거나저장된문서를열땐기존의도큐먼트객체를재사용함 13 반면, 뷰객체는응용프로그램의필요에따라여러개생성가능함 14 도큐먼트프레임윈도우 SDI 응용프로그램에서주요객체사이의참조 도큐먼트프레임윈도우 (Document Frame Window) 도큐먼트의내용을화면에표시하는역할을하는뷰를자식으로갖는윈도우 뷰의부모윈도우또는뷰를감싸고있는윈도우 도큐먼트 GetFirstViewPosition & GetNextView GetDocument 뷰 GetActiveDocument GetActiveView GetParentFrame 메인윈도우 = 도큐먼트프레임윈도우 메인윈도우 도큐먼트프레임윈도우 GetDocTemplate GetFirstDocPosition & GetNextDoc 도큐먼트템플릿 도큐먼트프레임윈도우 m_pmainwnd 응용프로그램 AfxGetMainWnd AfxGetApp SDI 응용프로그램 MDI 응용프로그램 15 GetFirstDocTemplatePosition & GetNextDocTemplate 16

5 주요객체사이의참조함수 CWinApp* AfxGetApp ( ); 응용프로그램객체의주소를리턴하는전역함수 CMyApp *pmyapp = (CMyApp *) AfxGetApp(); CWnd* AfxGetMainWnd ( ); 메인윈도우객체의주소를리턴하는전역함수 CMainFrame *pmainframe = (CMainFrame *) AfxGetMainWnd(); CFrameWnd* CWnd::GetParentFrame ( ); 부모윈도우중프레임윈도우객체의주소를리턴 일반적으로도큐먼트프레임윈도우가이에해당 CView* CFrameWnd::GetActiveView ( ); 활성뷰 (Active View) 객체의주소를리턴 17 주요객체사이의참조함수 CDocument* CFrameWnd::GetActiveDocument ( ); 활성도큐먼트 (Active Document) 객체의주소를리턴 CDocument* CView::GetDocument ( ); 뷰객체와연결된도큐먼트객체의주소를리턴 POSITION CDocument::GetFirstViewPosition ( ); CView* CDocument::GetNextView (POSITION& rposition); 도큐먼트객체는자신과연결된뷰를연결리스트로관리 도큐먼트객체와연결된모든뷰객체의주소를리턴 도큐먼트객체 m_viewlist 뷰객체 #1 뷰객체 #2 뷰객체 #3 18 NULL 주요객체사이의참조함수 주요객체사이의참조함수 POSITION CWinApp::GetFirstDocTemplatePosition ( ); CDocTemplate* CWinApp::GetNextDocTemplate (POSITION& pos); 응용프로그램객체가관리하는모든도큐먼트템플릿객체의주소를리턴 도큐먼트템플릿객체 #1 도큐먼트템플릿객체 #2 도큐먼트템플릿객체 #3 POSITION CDocTemplate::GetFirstDocPosition ( ); CDocument* CDocTemplate::GetNextDoc (POSITION& rpos); MDI 응용프로그램은여러개의도큐먼트객체를생성하며연결리스트로관리 도큐먼트템플릿객체가관리하는모든도큐먼트객체의주소를리턴 도큐먼트템플릿객체 m_doclist 도큐먼트객체 #1 도큐먼트객체 #2 도큐먼트객체 #3 NULL 응용프로그램객체 m_templatelist NULL CDocTemplate* CDocument::GetDocTemplate ( ); 도큐먼트객체와연결된도큐먼트템플릿객체의주소를리턴 19 20

6 SDI 응용프로그램예제작성 프로젝트생성 1~6 단계옵션설정 단계 변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 Document Template Strings 파일확장자 sdi 를입력 3 DB 변경사항없음 4 UI 변경사항없음 5 Advanced Features 'ActiveX Controls' 선택을해제 6 Generated Classes 변경사항없음 21 SDI 응용프로그램예제작성 InitInstance() 함수 BOOL CExSDIApp::InitInstance()... // 응용프로그램의설정정보가저장될레지스트리위치를지정 1 SetRegistryKey(_T("Local AppWizard-Generated Applications")); // 가장최근에사용한파일목록을레지스트리에서로드 2 LoadStdProfileSettings(); CSingleDocTemplate* pdoctemplate; pdoctemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CExSDIDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CExSDIView)); AddDocTemplate(pDocTemplate); 22 SDI 응용프로그램예제작성 InitInstance() 함수 3 EnableShellOpen(); // 마우스로더블클릭해서파일을열수있게함 4 RegisterShellFileTypes(TRUE); // 도큐먼트템플릿을검사해서찾아낸 // 도큐먼트타입을레지스트리에등록 CCommandLineInfo cmdinfo; ParseCommandLine(cmdInfo); if (!ProcessShellCommand(cmdInfo)) return FALSE; m_pmainwnd->showwindow(sw_show); m_pmainwnd->updatewindow(); 도큐먼트문자열 (Document String) 도큐먼트문자열 (Document String) 을위한리소스 CDocTemplate::GetDocString() 으로접근 5 m_pmainwnd->dragacceptfiles(); // 마우스로파일을 Drag-and-Drop // 하면해당파일을열도록함 return TRUE; 23 24

7 도큐먼트문자열 (Document String) 도큐먼트문자열 (Document String) ExSDI\n\nExSDI\nExSDI 파일 (*.sdi)\n.sdi\nexsdi.document \nexsdi Document 7 번호의미 1 프레임윈도우의타이틀바에표시되는제목 2 새로생성한문서의제목. 생략하면기본값인 제목없음 으로설정 3 두개이상의도큐먼트타입을지원하는 MDI 응용프로그램에서만사용. 새로운문서를생성할때도큐먼트타입을묻는대화상자가뜨는데이대화상자에표시되는문자열 4 열기또는저장하기대화상자에표시 5 파일의기본확장자로사용 6 레지스트리에등록되는도큐먼트타입 ID. 공백을허용하지않음 // GetDocString( ) 사용예 CExSDIApp *papp = (CExSDIApp *)AfxGetApp(); POSITION pt = papp->getfirstdoctemplateposition(); CDocTemplate* pdoct = papp->getnextdoctemplate(pt); CString title, docname, filenewname,filtername, filterext; pdoct->getdocstring(title, CDocTemplate::windowTitle); pdoct->getdocstring(docname, CDocTemplate::docName); pdoct->getdocstring(filenewname, CDocTemplate::fileNewName); pdoct->getdocstring(filtername, CDocTemplate::filterName); pdoct->getdocstring(filterext, CDocTemplate::filterExt); 7 레지스트리에등록되는도큐먼트타입문자열. 공백을25 허용 26 도큐먼트클래스주요함수 void SetModifiedFlag (BOOL bmodified = TRUE); 도큐먼트객체가유지하는데이터를수정한경우호출 파일을저장하지않고다른파일을열거나종료시확인에이용 void UpdateAllViews (CView* psender, LPARAM lhint = 0L, CObject* phint = NULL); 도큐먼트객체와연결된모든뷰의화면을갱신 CDocument::UpdateAllViews() CView::OnUpdate() CWnd::Invalidate() CWnd::OnPaint() CView::OnDraw() 도큐먼트객체 뷰객체 UpdateAllViews(NULL); // 모든뷰의전체영역갱신 UpdateAllViews(this); // 현재뷰를제외한모든뷰의전체영역갱신 UpdateAllViews(NULL, 1, (CObject *) prect) // 모든뷰의사각형 27 영역만갱신 도큐먼트클래스주요함수 void CDocument::UpdateAllViews(CView* psender, LPARAM lhint, CObject* phint) // 생략 POSITION pos = GetFirstViewPosition(); while (pos!= NULL) CView* pview = GetNextView(pos); if (pview!= psender) // psender는제외 pview->onupdate(psender, lhint, phint); // Invalidate() 호출 WM_PAINT -> OnPaint() -> OnDraw() 28

8 도큐먼트클래스주요가상함수 virtual BOOL OnNewDocument ( ); 새문서를생성할때자동으로호출 도큐먼트클래스의생성자보다 OnNewDocument 함수에초기화코드를추가하는것이바람직함 virtual BOOL OnOpenDocument (LPCTSTR lpszpathname); 파일을열때자동으로호출, 읽어들인데이터를처리할때재정의 virtual BOOL OnSaveDocument (LPCTSTR lpszpathname); 파일을저장할때자동으로호출, 저장할데이터를처리할때재정의 virtual void DeleteContents ( ); 새로운문서를생성하거나파일을열때자동으로호출 virtual void Serialize (CArchive& ar); 파일을열거나저장할때자동으로호출 29 도큐먼트클래스가상함수호출순서 가상함수호출순서 [ 파일 ]->[ 새파일 ] 메뉴항목을선택할때 OnNewDocument() DeleteContents() [ 파일 ]->[ 열기...] 메뉴항목을선택할때 OnOpenDocument() DeleteContents() Serialize() [ 파일 ]->[ 저장 ] 또는 [ 파일 ]->[ 다른이름으로저장...] 메뉴항목을선택할때 OnSaveDocument() Serialize() 30 뷰클래스주요가상함수 명령라우팅 (Command Routing) virtual void OnDraw (CDC* pdc); 화면출력, 인쇄, 인쇄미리보기를할때자동으로호출 virtual void OnInitialUpdate(); 뷰객체가도큐먼트객체와연결된후화면에보이기전에자동으로호출 CView::OnInitialUpdate() 함수는 CView::OnUpdate() 함수를호출하여뷰의화면전체를무효화 virtual void OnUpdate (CView* psender, LPARAM lhint, CObject* phint); CDocument::UpdateAllViews() 함수와 CView::OnInitialUpdate() 함수에서호출 CWnd::Invalidate() 를이용하여뷰화면전체를무효화 효과적인화면갱신이필요할때재정의 MFC 응용프로그램에서사용하는메시지종류 종류설명메시지맵매크로 윈도우메시지 명령메시지 명령갱신메시지 통지메시지 윈도우생성, 종료, 마우스, 키보드등다양한원인에의해발생 메뉴, 툴바, 가속기등에의해발생 메뉴, 툴바, 상태바등의상태를갱신할필요가있을때발생. MFC 에서만사용하는고유의메시지 컨트롤 ( 자식윈도우 ) 이부모윈도우에게보내는메시지 ON_WM_XXX ON_COMMAND(ID, 함수 ) ON_UPDATE_COMMAND _UI(ID, 함수 ) ON_XXX (ID, 함수 ) 두번째와세번째인자를참조하여뷰의화면일부만무효화 31 32

9 명령라우팅 (Command Routing) 분할윈도우 (Splitter Window) 명령라우팅순서 6 ::DefWindowProc() 5 응용프로그램객체 동적분할윈도우 (Dynamic Splitter Window) 같은뷰클래스를기반으로여러개의뷰를생성 총네개의구획 (Pane) 생성가능 명령메시지 (WM_COMMAND) 명령갱신메시지 (UPDATE_COMMAND_UI) 4 프레임윈도우 3 도큐먼트템플릿 2 활성도큐먼트 1 활성뷰 동적분할윈도우구현예제작성 프로젝트생성 1~6 단계옵션설정 동적분할윈도우구현예제작성 동적분할윈도우구현 단계 변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 Document Template Strings 파일확장자를입력 3 DB 변경사항없음 4 UI 에서 Split Window 를체크 5 Advanced Features 'ActiveX Controls' 선택을해제 6 Generated Classes 변경사항없음 35 36

10 // 동적분할윈도우지원을위해생성된코드 class CMainFrame : public CFrameWnd // Attributes protected: CSplitterWnd m_wndsplitter; // 동적분할윈도우지원을위한클래스추가 // 동적분할윈도우지원을위해생성된코드 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pcontext) return m_wndsplitter.create( this, // 부모윈도우 2, 2, // 가로, 세로분할개수 CSize(10, 10), // 구획 (pane) 의기본크기 // 이크기보다작으면분할을없앰 pcontext); //MFC 윈도우생성에필요한구조체 37 // Document 파일에 m_str 을분할된윈도우에출력하는프로그램 // (WM_CHAR 메시지처리에의하여입력된문자를 m_str 에추가 ) //(1)Document class class CSplitterWinDoc : public CDocument public: CString m_str; // 변수선언 BOOL CSplitterWinDoc::OnNewDocument() if (!CDocument::OnNewDocument()) return FALSE; m_str = ""; // 변수초기화 return TRUE; 38 //(2)View Class void CSplitterWinView::OnDraw(CDC* pdc) CSplitterWinDoc* pdoc = GetDocument(); CRect rect; GetClientRect(&rect); // Document 객체의 m_str 출력 pdc->drawtext(pdoc->m_str, &rect, DT_LEFT); 동적분할윈도우구현예제작성 실행결과 void CSplitterWinView::OnChar(UINT nchar, UINT nrepcnt, UINT nflags) CSplitterWinDoc* pdoc = GetDocument(); pdoc->m_str += (char) nchar; // 입력된문자를 m_str 에추가 // Document 와연결된모든 View 에대한화면갱신 pdoc->updateallviews(null); CView::OnChar(nChar, nrepcnt, nflags); 39 40

11 분할윈도우 정적분할윈도우 (Static Splitter Window) 서로다른뷰클래스를기반으로여러개의뷰를생성 총 256개의구획생성가능 분할윈도우 정적분할윈도우구현 CView 를기반으로하는새로운뷰클래스를생성 두개의뷰클래스에대하여서로다른처리내용구현 41 // 두번째분할영역을처리하는뷰클래스에 WM_LBUTTONDOWN 메시지처리 // 추가 ( 사각형출력 ) void CSimpleDrawView::OnLButtonDown(UINT nflags, CPoint point) CClientDC dc(this); dc.selectstockobject(ltgray_brush); dc.rectangle(point.x-20, point.y-20, point.x+20, point.y+20); CView::OnLButtonDown(nFlags, point); 42 분할윈도우 정적분할윈도우구현 프레임윈도우클래스의 OnCreateClient () 함수수정 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pcontext) m_wndsplitter.createstatic(this, 2, 1); // 가로 =2, 세로 =1 분할 m_wndsplitter.createview(0, 0, // row=0, col=0 구획 RUNTIME_CLASS(CSimpleSplitterView), CSize(300, 200), pcontext); m_wndsplitter.createview(1, 0, // row=1, col=0 구획 RUNTIME_CLASS(CSimpleDrawView), CSize(300, 200), pcontext); // row=0, col=0 에위치하는뷰객체의주소를받아서활성뷰로설정 SetActiveView((CView *)m_wndsplitter.getpane(0, 0)); return TRUE; 분할윈도우 정적분할윈도우구현 프레임윈도우클래스 (MainFrm.cpp) 에헤더파일추가 #include SimpleDrawView.h #include SimpleSplitterView.h #include SimpleSplitterDoc.h 뷰클래스의 OnChar 에 Invalidate 를호출 BOOL CSimpleSplitterView::OnChar(UINT nchar, UINT nrepcnt, UINT nflags) CSimpleSplitterDoc* pdoc = GetDocument(); pdoc->m_str += (char) nchar; // 입력된문자를 doc 의 m_str 에추가 Invalidate(); // 이뷰만다시그림 return TRUE; 43 44

12 정적분할윈도우구현예제작성 실행결과 MDI 응용프로그램구조 MDI 응용프로그램기본구조 메인윈도우 (CMDIFrameWnd) 응용프로그램 (CWinApp) 도큐먼트프레임윈도우 (CMDIChildWnd) 도큐먼트템플릿 (CMultiDocTemplate) 도큐먼트 (CDocument) 뷰 (CView) MDI 응용프로그램구조 MDI 응용프로그램일반구조 응용프로그램객체 MDI 응용프로그램구조 MDI 응용프로그램일반구조 응용프로그램객체 도큐먼트템플릿 도큐먼트템플릿 도큐먼트객체 1 도큐먼트객체 2 도큐먼트객체 3 도큐먼트객체 1 도큐먼트객체 2 도큐먼트객체 3 뷰객체 1 뷰객체 2 뷰객체 3 뷰객체 1 뷰객체 2 뷰객체 3 뷰객체

13 SDI 와 MDI 응용프로그램비교 도큐먼트템플릿으로 CSingleDocTemplate 클래스대신 CMultiDocTemplate 클래스사용 SDI 응용프로그램과달리 MDI 응용프로그램은도큐먼트객체를재사용하지않고매번새로생성 MDI 응용프로그램에서는메인윈도우와도큐먼트프레임윈도우가별개이며각각 CMDIFrameWnd, CMDIChildWnd 클래스사용 MDI 응용프로그램의 InitInstance() InitInstance() 함수 BOOL CSimpleMDIApp::InitInstance()... CMultiDocTemplate* pdoctemplate; pdoctemplate = new CMultiDocTemplate( IDR_SimpleMDITYPE, RUNTIME_CLASS(CSimpleMDIDoc), RUNTIME_CLASS(CChildFrame), // 도큐먼트프레임윈도우 RUNTIME_CLASS(CSimpleMDIView)); AddDocTemplate(pDocTemplate); CMainFrame* pmainframe = new CMainFrame; // 메인윈도우 if (!pmainframe->loadframe(idr_mainframe)) return FALSE; m_pmainwnd = pmainframe; MDI 응용프로그램에서주요객체사이의참조 GetFirstViewPosition & GetNextView 도큐먼트뷰 GetDocument GetActiveDocument GetActiveView GetParentFrame 도큐먼트 GetDocTemplate 프레임윈도우 MDIGetActive or GetActiveFrame 주요객체사이의참조함수 CMDIChildWnd* CMDIFrameWnd::MDIGetActive (BOOL* pbmaximized = NULL); CFrameWnd* CFrameWnd::GetActiveFrame ( ); 활성도큐먼트프레임윈도우객체의주소를리턴 GetFirstDocPosition & GetNextDoc 메인윈도우 m_pmainwnd AfxGetMainWnd 도큐먼트응용프로그램템플릿 GetFirstDocTemplatePosition & GetNextDocTemplate AfxGetApp 51 52

14 MDI 응용프로그램특징 [ 파일 ]->[ 새파일 ] 메뉴항목을선택하면새로운도큐먼트, 도큐먼트프레임윈도우, 뷰객체가생성 [ 창 ]->[ 다음창 ] 메뉴항목을선택하면활성도큐먼트에대한뷰를추가로생성가능 최소두개의메뉴사용 다양한도큐먼트타입지원 새로운도큐먼트타입추가 1 새로운도큐먼트와뷰클래스를생성하고구현코드작성 2아이콘, 메뉴, 도큐먼트문자열등리소스를추가 3 InitInstance() 함수수정 다양한도큐먼트타입지원 MDI 응용프로그램일반구조 두개이상의도큐먼트타입지원 MDI 응용프로그램예제작성 프로젝트생성 1~6 단계옵션설정 응용프로그램객체 단계 변경사항 도큐먼트템플릿 1 도큐먼트템플릿 2 1 Multiple document' 를선택한다. 2 Compound Document Support 변경사항없음 3 DB 변경사항없음 4 UI 변경사항없음 도큐먼트객체 1 도큐먼트객체 2 도큐먼트객체 3 도큐먼트객체 4 5 Advanced Features 'ActiveX Controls' 선택을해제함 6 뷰클래스의 Base Class 를 CEditView 로변경 뷰객체 1 뷰객체 2 뷰객체 3 뷰객체 4 뷰객체

15 MDI 응용프로그램예제작성 메뉴리소스 MDI 응용프로그램예제작성 하나의도큐먼트클래스로여러개의도큐먼트객체생성예 MDI 응용프로그램예제작성 MDI 응용프로그램예제작성 여러개의도큐먼트클래스를이용한예를추가 1. 새로운도큐먼트와뷰클래스를생성하고구현코드작성 2. 아이콘, 메뉴, 도큐먼트문자열등리소스를추가 59 60

16 MDI 응용프로그램예제작성 3. 응용프로그램클래스의 InitInstance() 함수수정 BOOL CSimpleMDIApp::InitInstance() // 생략 CMultiDocTemplate* pdoctemplate; pdoctemplate = new CMultiDocTemplate( IDR_SimpleMDITYPE, RUNTIME_CLASS(CSimpleMDIDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CSimpleMDIView)); AddDocTemplate(pDocTemplate); // 추가된토큐먼트, 뷰를위한탬플릿생성및응용프로그램객체에추가 pdoctemplate = new CMultiDocTemplate( IDR_SimpleDRAWTYPE, RUNTIME_CLASS(CSimpleDrawDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CSimpleDrawView)); AddDocTemplate(pDocTemplate); // 생략 61 MDI 응용프로그램예제작성 4. 응용프로그램클래스에헤더파일추가 // SimpleMDI.cpp #include "stdafx.h" #include "SimpleMDI.h" #include "MainFrm.h" #include "ChildFrm.h" #include SimpleMDIDoc.h" #include SimpleMDIView.h" #include SimpleDrawDoc.h" #include SimpleDrawView.h" 62 MDI 응용프로그램예제작성 5. 응용프로그램실행시존재하는도큐먼트타입을선택하여새로만들기 63

슬라이드 1

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

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

윈도우 프로그래밍의 개념

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

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

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

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

5장 MFC기반 다지기

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

More information

Microsoft Word - hci07-final-answer.doc

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

More information

Microsoft Word - hci08-final-answer.doc

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

More information

Programming hwp

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

More information

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

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

More information

Microsoft PowerPoint _파일입출력.ppt

Microsoft PowerPoint _파일입출력.ppt 8 장. 파일입출력 파일입출력연속화 (serialization) 아카이브 (archive) 객체 Paint4.dsw Paint5.dsw 레지스트리 (registry) 오목게임 순천향대학교정보기술공학부이상정 1 파일입출력 순천향대학교정보기술공학부이상정 2 파일입출력소개 파일입출력 프로그램에서만든정보를하드디스크의파일로저장하는방법 MFC 에서사용하는파일입출력방법인연속화

More information

Microsoft PowerPoint - CPP_chap3

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

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

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

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

More information

MFC 프로그래밍

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

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

윈도우시스템프로그래밍

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

More information

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

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

More information

Programming hwp

Programming hwp 5 장 SDI 응용프로그램 5.1 문서 / 뷰구조와 SDI 응용프로그램 문서 / 뷰구조 SDI 응용프로그램유형또는 MDI 응용프로그램유형이선택될경우응용프로그램마법사 (AppWizard) 가생성하는프로그램구조는문서 / 뷰 (Document/View) 구조를중심으로이루어진다. 이러한응용프로그램들은문서의전체또는일부를메모리에읽어들인후그내용을어떤형태로든사용자에게보여준다.

More information

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>

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

More information

Chapter 1. MFC 시작하기

Chapter 1.  MFC 시작하기 Chapter 1. MFC 시작하기 1. MFC(Microsoft Foundation Class) 개요 2. Visual Studio 2015 프로그램설치하기 3. 마우스클릭프로그램작성 4. 그림그리기프로그램작성 5. 마우스좌표값구하기프로그램작성 1 1.1. MFC 개요 2 1.1.1. C++ 언어 객체지향언어 (Object-Oriented Programming,

More information

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores 컴퓨터공학설계및실험 I MFC programming 8 주차실험 MFC Programming Dept. of CS, Sogang Univ. 1 Programming with Visual Studio Visual Studio 의소개 Visual Studio : 프로그래머가손으로일일이전체코드를작성하는것이아니라마우스로그림을그리듯화면을디자인하고, 필요한곳에만코드를삽입하는발전된방식의개발도구

More information

Microsoft PowerPoint - MFC-교재.ppt

Microsoft PowerPoint - MFC-교재.ppt MFC MFC 기초와구조 1 차례 MFC 란무엇인가 Application Framework MFC 계층구조 MFC 구조 The Application Framework CWinApp Class CFrameWnd Class Documents and Views 객체간의통신 MFC 프로그래밍 Messages and Commands [2] MFC(Microsoft Foundation

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

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

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

More information

그래픽 프로그래밍

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

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

윈도우시스템프로그래밍

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

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

Microsoft PowerPoint - hci2-lecture6.ppt

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

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD> 2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

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

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

[제1강] 텍스트를  입력하세요 제 8 강 MFC 프레임워크 (1) Visual C++ 프로그래밍 컴퓨터과학과 김강현교수 제 8 강의학습내용 MFC (Microsoft Foundation Class) 기본구조 MFC클래스들의계층구조윈도우프로그램과메시지 (Message) hwnd의위치 Visual C++ 에서정의된자료형 MFC 클래스살펴보기 MFC(Microsoft Foundation Class)

More information

슬라이드 1

슬라이드 1 2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)

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 - hci2-lecture1.ppt

Microsoft PowerPoint - hci2-lecture1.ppt Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2007년가을학기 9/13/2007 박경신 2 윈도우운영체제특징 그래픽사용자인터페이스 (Graphical User Interface,

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 PowerPoint - hci2-lecture1.ppt

Microsoft PowerPoint - hci2-lecture1.ppt Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2008년가을학기 9/16/2008 박경신 2 Windows.NET 구조적프로그램에서객체지향프로그램으로 SDK(Software Development

More information

어댑터뷰

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

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

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

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345]) 클래스의응용 클래스를자유자재로사용하자. 이장에서다룰내용 1 객체의치환 2 함수와클래스의상관관계 01_ 객체의치환 객체도변수와마찬가지로치환이가능하다. 기본예제 [7-1] 객체도일반변수와마찬가지로대입이가능하다. 기본예제 [7-2] 객체의치환시에는조심해야할점이있다. 복사생성자의필요성에대하여알아보자. [ 기본예제 7-1] 클래스의치환 01 #include

More information

08장 윈도우에서의 그리기

08장 윈도우에서의 그리기 8 장 윈도우에서의그리기 김성영교수 금오공과대학교 컴퓨터공학부 그래픽장치인터페이스객체 GDI 객체 객체의핸들타입 MFC 클래스속성 HPEN CPen 선속성 HBRUSH CBrush 채우기속성 HFONT CFont 글꼴속성 HBITMAP CBitmap 비트맵영상속성 HPALETTE CPalette 팔레트속성 HRGN CRgn 영역속성 GDI 클래스는 CGdiObject

More information

설계란 무엇인가?

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

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

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

<4D F736F F F696E74202D203032C0E520C0AFC6BFB8AEC6BC20C5ACB7A1BDBABFCD20C1FDC7D520C5ACB7A1BDBA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203032C0E520C0AFC6BFB8AEC6BC20C5ACB7A1BDBABFCD20C1FDC7D520C5ACB7A1BDBA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D> 02 : 02 유틸리티클래스와집합클래스 학습목표 유틸리티클래스를이용하여객체생성법과사용법을익힌다. MFC 에서 C++ 의업캐스팅이적용되는원리를이해한다. 배열, 리스트, 맵클래스동작원리와사용법을익힌다. 콘솔응용프로그램 특징 메시지구동방식을사용하지않으므로 C/C++ 언어에대한지식만있으면곧바로실습이가능하다. 상당수의 MFC 클래스를사용할수있다. 유틸리티클래스, 집합클래스,

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

More information

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

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

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

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

JAVA PROGRAMMING 실습 08.다형성

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

More information

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

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

More information

쉽게 풀어쓴 C 프로그래밍

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

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

제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

C++ Programming

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

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

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

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

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

More information

PowerPoint Template

PowerPoint Template 16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //

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

슬라이드 1

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

More information

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

Microsoft PowerPoint - additional06.ppt [호환 모드] 보조자료 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park 복습 : Const 키워드왜사용? C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; //

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

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2> 게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()

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

歯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

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

Programming hwp

Programming hwp 4.3 그래픽프로그래밍 이절에서다룰예제응용프로그램은사각형이나타원을그리거나마우스이동위치를추적하여연결함으로써자유곡선을그리는등의그래픽작업을다루는프로그램이다. 어떤도형을그릴것인지는라디오버튼으로정한다. 타원을그릴때는매번타원모양, 테두리선의굵기와색상, 채우기패턴등을변경하는데, 이렇게변경된그래픽속성이다른도형을그릴때에도적용된다. 즉, 타원을그릴때는그래픽속성이매번변경되지만,

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

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

10 장세균전프로그래밍 10.1 게임룰 (1) 사람과컴퓨터가싸우는 2인용보드게임이다. (2) 사람이먼저움직이고, 컴퓨터가움직인다. (3) 세균을가로및세로방향으로 2칸까지빈칸으로이동시킬수있다. (4) 1칸을이동할경우에는복제가된다. (5) 이동한후주변세균은내편으로바뀐다.

10 장세균전프로그래밍 10.1 게임룰 (1) 사람과컴퓨터가싸우는 2인용보드게임이다. (2) 사람이먼저움직이고, 컴퓨터가움직인다. (3) 세균을가로및세로방향으로 2칸까지빈칸으로이동시킬수있다. (4) 1칸을이동할경우에는복제가된다. (5) 이동한후주변세균은내편으로바뀐다. 10 장세균전프로그래밍 10.1 게임룰 (1) 사람과컴퓨터가싸우는 2인용보드게임이다. (2) 사람이먼저움직이고, 컴퓨터가움직인다. (3) 세균을가로및세로방향으로 2칸까지빈칸으로이동시킬수있다. (4) 1칸을이동할경우에는복제가된다. (5) 이동한후주변세균은내편으로바뀐다. (6) 둘다이동할수없으면, 경기가종료된다. (7) 가장많은세균을가진사람이이긴다. 10.2 기초지식

More information

Microsoft PowerPoint - Chap12-OOP.ppt

Microsoft PowerPoint - Chap12-OOP.ppt 객체지향프로그래밍 (Object Oriented Programming) 12 장강사 강대기 차례 (Agenda) 멤버에대한동적메모리할당 암시적 / 명시적복사생성자 암시적 / 명시적오버로딩대입연산자 생성자에 new 사용하기 static 클래스멤버 객체에위치지정 new 사용하기 객체를지시하는포인터 StringBad 클래스 멤버에포인터사용 str static 멤버

More information

04장 메시지 처리 유형

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

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

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770> 2010 학년도동계 계절수업시험문제지 출제위원 방송대김강현 학과명학번 - 성 명 감독관확인 ( 인 ) 교과목명 교과목코드 윈도우프로그래밍 3 7 출제범위 교재전체 ( 해당강의포함 ) 문항수 50 문항 [50 문항 2 점 =100 점 ] 유의사항 1. OMR 답안지및문제지인적사항표기는반드시컴퓨터용사인펜으로할것 2. 표기한답안은정정이일절불가하니답안표기에각별히유의할것

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

1장 윈도우 프로그래밍 들어가기

1장 윈도우 프로그래밍 들어가기 1 장 윈도우프로그래밍들어가기 김성영교수 금오공과대학교 컴퓨터공학부 예제 다음프로그램은언제종료할까? #include #define QUIT -1 int Func(void) int i; cout > i; return i; void main(void) int Sum = 0, i; cout

More information

PowerPoint 프레젠테이션

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

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

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

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

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

슬라이드 1

슬라이드 1 한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic

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

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

Microsoft PowerPoint - CPP_chap6_interface(2)

Microsoft PowerPoint - CPP_chap6_interface(2) 사용자인터페이스 (2) 1 1. 대화상자 (Dialog) 2 학습목표 Graphs 예제에서여러가지굵기의선을그릴수있도록수정해본다 선의굵기를지정할대화상자를만들고대화상자클래스를만든다 대화상자구현과정 1 리소스에디터를사용하여대화상자리소스 (Resource) 를만든다. 대화상자리소스는대화상자의형태를정의한다. 2 ClassWizard를사용하여 CDialog 클래스를상속받아새대화상자클래스를만든다.

More information

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

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");

More information

Programming hwp

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

More information

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070> #include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information