Microsoft PowerPoint - CPP_chap7_dialogbox(2)

Size: px
Start display at page:

Download "Microsoft PowerPoint - CPP_chap7_dialogbox(2)"

Transcription

1 7 장. 대화상자컨트롤 (2) 1

2 1. 버튼컨트롤 2 학습목표버튼컨트롤들을포함한다이얼로그박스를만들어본다 소스 : "07-1 Ctrl1.zip" 다이얼로그박스만들기 1 Ctrl1 라는이름의 Dialog based 프로젝트를생성한다 2 IDD_CTRL1_DIALOG 다이얼로그박스리소스수정

3 3 3 컨트롤아이디지정컨트롤 ID 컨트롤유형 캡션 IDC_STATIC Static control Number IDC_RADIO_ZERO Radio Button &Zero IDC_RADIO_ONE Radio ONE &One IDC_CHECK_TWO Checkbox &Two IDC_BUTTON_THREE Pushbutton T&hree 3 Radio 버튼그룹에서선두 Radio 버튼만 Group 프로퍼티값이세팅되어있어야한다. 탭순서지정 다이얼로그박스에서탭키를누르면포커스가다른컨트롤로이동한다. 이이동순서를탭순서라고부른다. 메뉴의 Layout Tab Order 선택하고, 컨트롤들을순서대로클릭한다.

4 4 멤버변수와컨트롤연결 1 ClassWizard의 Member Variables 페이지에서컨트롤마다멤버변수 를추가한다 Control ID Name Category Type IDC_RADIO_ZERO m_vzero Value int IDC_RADIO_ZERO m_czero Control CButton IDC_CHECK_TWO m_vtwo Value BOOL IDC_CHECK_TWO m_ctwo Control CButton IDC_BUTTON_THREE m_cthree Control CButton

5 5 Radio 버튼은그룹의선두버튼만 ClassWizard의 Member Variable 페이지에서볼수있다. 따라서 IDC_ONE Radio 버튼은 ClassWizard의 Member Variable 페이지에서볼수없다. Radio 버튼과 Check Box 버튼각각에대하여멤버변수 2개를연결하였다. 하나는값, 하나는 C++ 클래스이다. 단지값만알고자할때는값으로연결된멤버변수를읽으면되므로편하다. 컨트롤에게어떤명령을내릴때는 C++ 클래스를이용하면편하다.

6 6 다이얼로그클래스에버튼이벤트첨가 버튼이눌릴때어떤반응이일어나게하려면, 다이얼로그클래스에메시지처리함수를첨가해주어야한다. 1 ClassWizard의 Message Maps 페이지에서 Class Name: CCtrl1Dlg Object ID: IDC_BUTTON_THREE Message: BN_CLICKED 2 Add Function 버튼을누르고 OnButtonThree 함수이름을확인 3 다음과같이입력하고실행해보자

7 void CCtrl1Dlg::OnButtonThree() CString name; m_cthree.getwindowtext(name); if (name == "T&hree") m_czero.setwindowtext("&zero"); m_ctwo.setwindowtext("&two"); m_cthree.setwindowtext("t&hree"); SetWindowText("DIALOG"); GetDlgItem(IDOK)->SetWindowText("OK"); GetDlgItem(IDCANCEL)->SetWindowText("CANCEL"); GetDlgItem(IDC_RADIO_ONE)->SetWindowText("&ONE"); else m_czero.setwindowtext("&zero"); m_ctwo.setwindowtext("&two"); m_cthree.setwindowtext("t&hree"); SetWindowText("Dialog"); GetDlgItem(IDOK)->SetWindowText("Ok"); GetDlgItem(IDCANCEL)->SetWindowText("Cancel"); GetDlgItem(IDC_RADIO_ONE)->SetWindowText("&One"); 7

8 8 컨트롤들도기본적으로윈도우이다. MFC 클래스라이브러리측면에서얘기하자면컨트롤클래스들은 CWnd 클래스의하위클래스이다. 따라서 CWnd 클래스의멤버함수인 SetWindowText나 GetWindowText를사용할수있다. SetWindowText 멤버함수를호출하여컨트롤의캡션을변경하여보았다. CWnd 클래스의멤버함수인 GetDlgItem(ID) 는파라미터로컨트롤의 ID를주면그컨트롤에대한포인터를리턴한다.

9 9 4 다음과같이입력하고실행해보자 void CCtrl1Dlg::OnButtonThree() if (m_czero.iswindowenabled()) m_czero.enablewindow(false); m_ctwo.enablewindow(false); GetDlgItem(IDOK)->EnableWindow(FALSE); GetDlgItem(IDCANCEL)->EnableWindow(FALSE); GetDlgItem(IDC_RADIO_ONE)->EnableWindow(FALSE); else m_czero.enablewindow(true); m_ctwo.enablewindow(true); GetDlgItem(IDOK)->EnableWindow(TRUE); GetDlgItem(IDCANCEL)->EnableWindow(TRUE); GetDlgItem(IDC_RADIO_ONE)->EnableWindow(TRUE); CWnd 클래스의멤버함수인 EnableWindow() 를사용하여컨트롤을활성화, 비활성화시킬수있다.

10 10 5 다음과같이입력하고실행해보자 void CCtrl1Dlg::OnButtonThree() if (m_czero.iswindowvisible()) m_czero.showwindow(sw_hide); m_ctwo.showwindow(sw_hide); GetDlgItem(IDOK)->ShowWindow(SW_HIDE); GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE); GetDlgItem(IDC_RADIO_ONE)->ShowWindow(SW_HIDE); else m_czero.showwindow(sw_show); m_ctwo.showwindow(sw_show); GetDlgItem(IDOK)->ShowWindow(SW_SHOW); GetDlgItem(IDCANCEL)->ShowWindow(SW_SHOW); GetDlgItem(IDC_RADIO_ONE)->ShowWindow(SW_SHOW); CWnd 클래스의멤버함수인 ShowWindow() 를사용하여컨트롤을보이게또는안보이게할수있다.

11 11 void CCtrl1Dlg::OnButtonThree() UpdateData(TRUE); CString str; str.format(" m_vzero = %d\n\n m_vtwo AfxMessageBox(str); = %d", m_vzero, m_vtwo); 단순히사용자가입력한값만알고자할때는값으로연결된멤버변수가편리하다.

12 2. 리스트박스컨트롤 12 학습목표버튼컨트롤들을포함한다이얼로그박스를만들어본다 소스 : "07-2 Ctrl2.zip" 다이얼로그박스만들기 1 Ctrl2 라는이름의 Dialog based 프로젝트를생성한다 2 IDD_CTRL2_DIALOG 다이얼로그박스리소스수정

13 13 3 컨트롤아이디지정컨트롤 ID 컨트롤유형 캡션 IDC_LIST1 List Box IDC_BUTTON1 Pushbutton << IDC_EDIT1 Edit Box 멤버변수와컨트롤연결 1 ClassWizard의 Member Variables 페이지에서컨트롤마다멤버변수 를추가한다 Control ID Name Category Type IDC_LIST1 m_list Control CListBox IDC_EDIT1 m_edit Value CString

14 14 다이얼로그클래스에버튼이벤트첨가 1 ClassWizard의 Message Maps 페이지에서 Class Name: CCtrl2Dlg Object ID: IDC_BUTTON1 Message: BN_CLICKED 2 Add Function 버튼을누르고 OnButton1 함수이름을확인 3 ClassWizard의 Message Maps 페이지에서 Class Name: CCtrl2Dlg Object ID: IDC_LIST1 Message: LBN_DBLCLK 4 Add Function 버튼을누르고 OnDblclkList1 함수이름을확인

15 15 5 다음과같이입력하고실행해보자 void CCtrl2Dlg::OnButton1() UpdateData(TRUE); m_list.addstring(m_edit); void CCtrl2Dlg::OnDblclkList1() m_list.deletestring( m_list.getcursel() );

16 3. 콤보박스컨트롤 16 학습목표콤보박스컨트롤들을포함한다이얼로그박스를만들어본다 소스 : "07-3 Ctrl3.zip" 다이얼로그박스만들기 1 Ctrl3 라는이름의 Dialog based 프로젝트를생성한다 2 IDD_CTRL3_DIALOG 다이얼로그박스리소스수정

17 17 3 컨트롤아이디와프러퍼티 지정 컨트롤 ID 컨트롤유형 Type IDC_LIST1 List Box IDC_COMBO1 Combo Box Simple IDC_COMBO2 Combo Box Drop down IDC_COMBO3 Combo Box Drop list IDC_BUTTON1 Pushbotton 4 Sort 프러퍼티를전부 clear 한다

18 18 멤버변수와컨트롤연결 1 ClassWizard의 Member Variables 페이지에서컨트롤마다멤버변수 를추가한다 Control ID Name Category Type IDC_LIST1 m_list1 Value CString IDC_COMBO1 m_combo1 Value CString IDC_COMBO2 m_combo2 Value CString IDC_COMBO3 m_combo3 Value CString

19 19 콤보박스컨트롤에항목입력 1 IDC_COMBO1 콤보박스컨트롤을더블클릭하여프로퍼티다이얼로그를열고 2 Enter listbox Items: 아래그림과같이입력 3 줄바꾸는키는 Ctrl-Enter 이다.

20 20 다이얼로그클래스에버튼이벤트첨가 1 ClassWizard의 Message Maps 페이지에서 Class Name: CCtrl3Dlg Object ID: IDC_BUTTON1 Message: BN_CLICKED 2 Add Function 버튼을누르고 OnButton1 함수이름을확인

21 21 다음과같이입력 BOOL CCtrl3Dlg::OnInitDialog() // 중간생략... // TODO: Add extra initialization here CComboBox* p = (CComboBox*)GetDlgItem(IDC_COMBO1); for (int i=0; i < p->getcount(); ++i) CString s; p->getlbtext(i,s); ((CComboBox*)GetDlgItem(IDC_COMBO2))->AddString(s); ((CComboBox*)GetDlgItem(IDC_COMBO3))->AddString(s); ((CListBox*)GetDlgItem(IDC_LIST1))->AddString(s); return TRUE; // return TRUE unless you set the focus to a control

22 22 void CCtrl3Dlg::OnButton1() CString s; UpdateData(TRUE); s.format(" LIST1 = %s\n COMBO1 = %s\n COMBO2 = %s\n COMBO3 = %s", m_list1, m_combo1, m_combo2, m_combo3); AfxMessageBox(s);

23 4. 프로그래스컨트롤, 슬라이더컨트롤 23 소스 : "07-4 Ctrl4.zip" 다이얼로그박스만들기 1 Ctrl4 라는이름의 Dialog based 프로젝트를생성한다 2 IDD_CTRL4_DIALOG 다이얼로그박스리소스수정 3 컨트롤아이디와프러퍼티지정컨트롤 ID 컨트롤유형 IDC_PROGRESS1 Progress IDC_SLIDER1 Slider

24 24 멤버변수와컨트롤연결 1 ClassWizard의 Member Variables 페이지에서컨트롤마다멤버변수를추가한다 Control ID Name Category Type IDC_PROGRESS1 m_progress Control CProgressCtrl IDC_SLIDER1 m_slider Control CSliderCtrl 다이얼로그클래스에버튼이벤트첨가 1 ClassWizard의 Message Maps 페이지에서 Class Name: CCtrl4Dlg Object ID: CCtrl4Dlg Message: WM_HSCROLL 2 Add Function 버튼을누르고 OnHScroll 함수이름을확인

25 25 다음과같이입력 BOOL CCtrl4Dlg::OnInitDialog() // 중간생략.. // TODO: Add extra initialization here m_slider.setrange(0,100); m_progress.setrange(0,100); return TRUE; // return TRUE unless you set the focus to a control void CCtrl4Dlg::OnHScroll(UINT nsbcode, UINT npos, CScrollBar* pscrollbar) m_progress.setpos( m_slider.getpos() );

26 26 슬라이더컨트롤은스크롤바와유사한기능을제공하며좀더간편하게사용할수있다. 슬라이더컨트롤은 WM_HSCROLL이나 WM_VSCROLL 메시지를부모윈도우에게보낸다. 프로그래스컨트롤은작업진행상황을표시하는데사용된다.

27 5. 트리뷰 (Tree View) 27 학습목표트리뷰를메인뷰로갖는어플리케이션을생성한다. 소스 : "07-5 TreeView.zip" 트리뷰만들기 1 AppWizard를이용하여 TreeView란이름의 Dialog-based 어플리케이션생성 2 CTreeView 클래스를상속받아어플리케이션의메인뷰를정의한다.

28 28 3 다음입력후실행 void CTreeViewView::OnInitialUpdate() CTreeView::OnInitialUpdate(); CTreeCtrl& tree = GetTreeCtrl(); HTREEITEM h = tree.insertitem( "One"); tree.insertitem( "Two", h ); tree.insertitem( "Three", h ); tree.insertitem( "Four", h ); h = tree.insertitem( "Five"); tree.insertitem( "Six", h ); tree.insertitem( "Seven", h ); tree.insertitem( "Eight", h ); BOOL CTreeViewView::PreCreateWindow(CREATESTRUCT& cs) cs.style = (TVS_HASLINES TVS_LINESATROOT TVS_HASBUTTONS); return CTreeView::PreCreateWindow(cs);

29 29 CTreeView에항목채우기 CTreeView 클래스는 CView 클래스의하위클래스이고트리뷰컨트롤을포함하고있다. CTreeView::GetTreeCtrl() 멤버함수는트리뷰컨트롤의레퍼런스를리턴한다. 트리뷰컨트롤의멤버함수를호출하여컨트롤에아이템을추가한다. 트리뷰컨트롤의 InsertItem() 멤버함수를이용하여항목을추가한다. 첫파라미터는추가할항목이고두번째파라미터는추가되는항목이위치할부모노드핸들이다. 트리뷰의몇몇스타일을설정하기위해 CTreeViewView::PreCreateWindow 함수를오버라이드하여구현하였다.

30 30 트리뷰윈도우스타일 TVS_HASLINES 부모아이템과자식아이템간을라인으로연결한다. TVS_LINESATROOT 트리컨트롤의루트아이템들을위한라인을제공한다. TVS_HASLINES 속성이같이있어야효과가있다. TVS_HASBUTTONS 는아이템앞에플러스나마이너스기호버튼을제공한다. TVS_EDITLABELS 사용자가트리뷰아이템라벨을편집할수있게한다.

31 6. 트리컨트롤 (Tree Control) 31 학습목표대화상자에트리콘트롤을포함시켜보자 소스 : "07-6 TreeCtrl.zip" 트리컨트롤만들기 1 AppWizard를이용하여 TreeCtrl란이름의 SDI 어플리케이션생성 2 IDB_BITMAP1 이라는이름의 14 x 28 비트맵을작성한다.

32 32 3 아래와같이다이얼로그박스에트리컨트롤을포함시킨다 트리컨트롤의 ID 는 IDC_TREE 프로퍼티설정은 Has Lines, Line at Root, Has Buttons 4 ClassWizard 를이용하여 IDC_TREE 와연결된멤버변수추가 IDC_TREE CTreeCtrl m_treectrl 5 CTreeCtrlDlg 클래스의 protected 영역에멤버변수추가 CImageList m_imagelist;

33 33 5 다음입력 BOOL CTreeCtrlDlg::OnInitDialog() CDialog::OnInitDialog(); // 중간생략... // TODO: Add extra initialization here m_imagelist.create( IDB_BITMAP1, 14, 1, RGB(255,255,255)); m_treectrl.setimagelist( &m_imagelist, TVSIL_NORMAL ); HTREEITEM h; h = m_treectrl.insertitem( "One", 0, 0 ); m_treectrl.insertitem( "Two", 1, 1, h ); m_treectrl.insertitem( "Three", 1, 1, h ); m_treectrl.insertitem( "Five", 1, 1, h ); h = m_treectrl.insertitem( "Six", 0, 0 ); m_treectrl.insertitem( "Seven", 1, 1, h ); m_treectrl.insertitem( "Eight", 1, 1, h ); m_treectrl.insertitem( "Nine", 1, 1, h ); return TRUE; // return TRUE unless you set the focus to a control

34 34 트리뷰컨트롤의프러퍼티 Has Buttons : 컨트롤에버튼을포함시킨다. 하위레벨을확장할수있는항목의왼쪽에버튼이그려진다. Has Lines : 컨트롤에항목들을연결하는선을포함시킨다. Line at Root : 컨트롤의첫번째단계의항목들을연결하는선을포함시킨다. Edit Labels : 사용자가컨트롤에있는레이블을변경할수있게한다. Disable Drag Drop : 트리컨트롤에포함된항목의드래그-드롭을막는다 Show Selection Always : 선택된항목을하이라이트하여표시한다.

35 35 항목추가 m_treectrl.insertitem( One, 1, 1, h ); 첫번째파라미터는추가되는함목의레이블이다. 두번째파라미터는선택되지않은경우표시되는아이콘 세번째파라미터는선택된경우표시되는아이콘 마지막파리미터는부모항목의핸들

36 7. 트리컨트롤에서드래그드롭 36 학습목표앞에서만든트리콘트롤에드래그드롭 (drag drop) 기능을추가 소스 : "07-6 TreeCtrl.zip" 메시지처리함수추가 1 ClassWizard를이용하여다음객체의메시지처리함수작성 Object ID Message Function IDC_TREE TVN_BEGINDRAG OnBegindragTree CTreeCtrlDlg WM_MOUSEMOVE OnMouseMove CTreeCtrlDlg WM_LBUTTONUP OnLButtonUp 2 CTreeCtrlDlg 클래스의 protected 영역에멤버변수추가 HTREEITEM m_dragitem;

37 37 3 다음입력 void CTreeCtrlDlg::OnBegindragTree(NMHDR* pnmhdr, LRESULT* presult) NM_TREEVIEW* pnm = (NM_TREEVIEW*)pNMHDR; m_dragitem = pnm->itemnew.hitem; if (m_treectrl.getparentitem(m_dragitem)!= NULL) CImageList* pimg = m_treectrl.createdragimage( m_dragitem ); m_treectrl.selectitem( m_dragitem ); pimg->begindrag(0, CPoint(0,0)); pimg->dragenter( &m_treectrl, pnm->ptdrag ); SetCapture(); *presult = 0;

38 void CTreeCtrlDlg::OnMouseMove(UINT nflags, CPoint point) if (GetCapture() == this) MapWindowPoints( &m_treectrl, &point, 1 ); CImageList::DragMove( point ); 38

39 void CTreeCtrlDlg::OnLButtonUp(UINT nflags, CPoint point) if (GetCapture() == this) ReleaseCapture(); CImageList::DragLeave(&m_treeCtrl); CImageList::EndDrag(); UINT uhittest = TVHT_ONITEM; HTREEITEM target = m_treectrl.hittest( point, &uhittest); if (target!= NULL) HTREEITEM h; h = m_treectrl.getparentitem(target); CString szlabel = m_treectrl.getitemtext( m_dragitem ); if (h!= NULL) m_treectrl.insertitem( szlabel, 1, 1, h, target ); else m_treectrl.insertitem( szlabel, 1, 1, target, TVI_FIRST); m_treectrl.deleteitem(m_dragitem ); 39

40 40 드래그가시작되면트리컨트롤은부모윈도우에게 TVN_BEGINDRAG 메시지를보낸다. 이메시지를 CTreeCtrlDlg::OnBeginDragTree 멤버함수에서받아처리한다. 드래그항목의핸들을 m_dragitem에저장한다. GetParentItem 함수를호출하여부모항목핸들을얻는다. NULL 이면루트항목이라는뜻이고위예제에서는루트항목의드래그는처리하지않는다. CreateDragImage 함수를호출하여드래그이미지리스트를만든다. 드래그의시작은 BeginDrag, 이동은 DragMove, 종료는 EndDrag 이다. DragEnter는윈도우에락을설정하여윈도우가갱신되지못하게하고드래그이미지가표시될수있게한다. DragLeave는락을해제한다. 드래그하는동안 WM_MOUSEMOVE 메시지가부모윈도우로보내지고사용자가마우스버튼을놓으면 WM_MOUSEUP 메시지가보내진다. 새위치에항목을삽입하고이전항목은제거하여드롭의효과를얻는다. CTreeCtrl::HitTest를호출하여마우스포인터가어느항목을가리키고있는지조사한다.

41 8. Graphs 수정 - Update Hint 41 목표화면에그리는기능을좀더효율적으로최적화한다. 소스 : "07-7 Graphs.zip"

42 42 UpdateAllViews 개선 CRectangle* CGraphsDoc::AddRect(CRect rect) CRectangle r(rect, m_width, m_pencolor, m_brushcolor); m_rects.add(r); UpdateAllViews(NULL); SetModifiedFlag(TRUE); return &m_rects[m_rects.getsize()-1]; void CGraphsView::OnLButtonUp(UINT nflags, CPoint point) if (GetCapture() == this) CGraphsDoc* pdoc = (CGraphsDoc*)GetDocument(); ReleaseCapture(); CRectangle* r = pdoc->addrect(makerect(m_point1,m_point2)); m_point1 = m_point2 = CPoint(0,0); pdoc->updateallviews(this, 0, r);

43

44 44 도큐먼트내용이변경되었을때 CDocument::UpdateAllViews() 를호출하여연결된모든뷰에게이사실을통보한다. 이때각뷰의OnUpdate() 멤버함수가호출된다. UpdateAllviews() 의파라미터가그대로 OnUpdate() 에전달되는데세번째파라미터는다시그리는작업을최소화할수있기위한정보를전달하는것이목적이다. 아무런정보를얻을수없다면전체를다시그릴수밖에없다. 위에서는추가된선에대한포인터를전달하여그부분만다시그릴수있도록하였다.

45 9. 스크롤뷰 (ScrollView) 45 학습목표 Graphs 뷰에스크롤기능을추가한다 ScrollView를상속하여구현한다. 소스 : "07-8 Graphs.zip" CScrollView 클래스를상속 1 CLine1View 클래스의상위클래스변경 class CGraphsView : public CScrollView IMPLEMENT_DYNCREATE(CGraphsView, CScrollView) BEGIN_MESSAGE_MAP(CGraphsView, CScrollView)

46 46 2 ClassWizard 에서 CGraphsView 클래스의 OnInitialUpdate() MFC 버추얼메소드작성 void CGraphsView::OnInitialUpdate() SetScrollSizes( MM_TEXT, CSize(2000, 2000)); 실행시켜본다 스크롤바를움직여서화면의다른쪽으로움직인다음화면안쪽에서바깥쪽으로선을그리면선이끊어져보인다. 좌표계변화을해주어야한다.

47 47 좌표계변환 1 다음과같이수정한다. void CGraphsView::OnLButtonDown(UINT nflags, CPoint point) CClientDC dc(this); OnPrepareDC(&dc); dc.dptolp(&point); m_point1 = point; m_point2 = point; SetCapture(); void CGraphsView::OnLButtonUp(UINT nflags, CPoint point) if (GetCapture() == this) CClientDC dc(this); OnPrepareDC(&dc); dc.dptolp(&point); CGraphsDoc* pdoc = (CGraphsDoc*)GetDocument(); ReleaseCapture(); CRectangle* r = pdoc->addrect(makerect(m_point1,m_point2)); m_point1 = m_point2 = CPoint(0,0); pdoc->updateallviews(this, 0, r);

48 void CGraphsView::OnMouseMove(UINT nflags, CPoint point) CClientDC dc(this); OnPrepareDC(&dc); dc.dptolp(&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); dc.lptodp(&r); InvalidateRect(r); m_point2 = point; r = MakeRect(m_point1,m_point2); r.inflaterect(w,w,w,w); dc.lptodp(&r); InvalidateRect(r); 48

49 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) CRect rect = m_ptinrect->boundrect(); dc.lptodp(&rect); InvalidateRect(rect); m_ptinrect = r; CRect rect = m_ptinrect->boundrect(); dc.lptodp(&rect); InvalidateRect(rect); return; if (m_ptinrect!= NULL) CRect rect = m_ptinrect->boundrect(); dc.lptodp(&rect); InvalidateRect(rect); m_ptinrect = NULL; 49

50 void CGraphsView::OnUpdate(CView* psender, LPARAM lhint, CObject* phint) if (phint!= NULL) if (phint->iskindof(runtime_class(crectangle))) CRectangle* r = (CRectangle*)pHint; CRect rect = r->boundrect(); CClientDC dc(this); OnPrepareDC(&dc); dc.lptodp(&rect); InvalidateRect(rect); return; Invalidate(); 50

51 51 CScrollView 스크롤바때문에 OnDraw 멤버함수를변경해야할필요는없다. 논리좌표계의원점 (0,0) 을변경시켜서 Scroll 효과를주기때문이다. MFC에서원점변경은 OnPrepareDC() 에서수행하는것이적당하다. OnPrepareDC() CView 클래스의멤버함수이다. OnDraw() 가호출되기전 Device Context를초기화하기위해서호출된다. CScrollView 클래스의 OnPrepareDC() 는좌표계의원점을설정한다.

52 52 좌표변환의필요성 GDI 함수 (CDC 클래스의메소드 ) 들은논리좌표계를사용하고아니면물리좌표계를사용한다. 예를들면 WM_LBUTTONDOWN과같은마우스메시지도마우스포인터의위치를에물리좌표계로전달한다 마우스포인터좌표를입력받아선을그릴때 CDC 메소드를사용하므로논리좌표계를사용하게된다. 이경우논리좌표계와물리좌표계사이에변환의필요성이발생한다. 무효화메소드 CWin::InvalidateRect() 는 CDC 메소드가아니므로물리좌표계를사용해야한다. CDC 클래스의좌표변환멤버함수는 LPtoDP(CPoint*) 논리좌표를물리좌표로변환 DPtoLP(CPoint*) 물리좌표를논리좌표로변환

53 10. Splitter 윈도우 53 학습목표 Graphs 의윈도우에 Splitter 윈도우를추가한다 소스 : "07-9 Graphs.zip" Splitter 윈도우 Splitter 윈도우는크기조정가능한여러창으로구성되어있다. 각창은내부에뷰를포함한다. Static Splitter의각창은다른뷰클래스일수있고창의수는미리결정되어고정된다 Dynamic Splitter의각창은동일한뷰클래스만을포함해야하지만창의수에는제한이없다 AppWizard 로어플리케이션의골격을자동생산할때 "Use Splitter Option" 을선택하면 Splitter 생성코드가저절로만들어진다

54 54 Splitter 윈도우추가 1 CChildFrame클래스에멤버변수추가 Add Member Variable 대화상자에서 Variable Type: CSplitterWnd Name: m_wndsplitter Access Area: Protected 2 WizardBar 나 ClassWizard 에서 CChildFrame 클래스의 OnCreateClient 멤버함수를추가 BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pcontext) return m_wndsplitter.create(this, 2, 2, CSize(10, 10), pcontext);

55 55 CChildFrame::OnCreateClient() 는윈도우가생성될때호출된다. CSplitterWnd::Create() 의 2 번째 3 번째파라미터는 Splitter 윈도우갖을수있는최대행과열수, 4 번째파라미터는 Pane 의최소크기, 5 번째파라미터는 CCreateContext 구조체이고 Pane 에생성할뷰클래스를지정한다.

56 11. Spin 컨트롤 56 학습목표 Spin 컨트롤을사용하여 Graphs 의다이얼로그박스를개선한다 소스 : "07-10 Graphs.zip" 다이얼로그박스수정 1 Graphs 프로젝트를연다 2 IDD_LINE_WIDTH 다이얼로그박스를아래와같이수정탭순서를아래와같이설정해야한다

57 57 3 Spin 컨트롤의프로퍼티를다음과같이설정 4 ClassWizard를사용하여 Spin 컨트롤을멤버변수로연결 Control ID : IDC_SPIN1 Type : CSpinButtonCtrl Member : m_spin

58 58 5 ClassWizard를사용하여 IDD_LINE_WIDTH 다이얼로그박스에멤버함수작성 Object ID : CLineWidthDlg Message : WM_INITDIALOG Member Function : OnInitDialog 6 다음입력후실행 BOOL CLineWidthDlg::OnInitDialog() CDialog::OnInitDialog(); m_spin.setrange(1,30); return TRUE;

59 59 Spin 컨트롤의프로퍼티 Orientation : Spin 컨트롤이수직인가또는수평인가를나타낸다. 디폴트는수직이다. Alignment : 버디컨트롤과 Spin 컨트롤이서로어떻게결합될것인가를지정한다. 즉 Right를선택하면버디컨트롤의오른쪽에 Spin 컨트롤이붙어있게된다. Auto Buddy : 이프로퍼티를설정하면탭순서에서 spin 컨트롤바로앞에있는컨트롤을버디컨트롤로사용한다. Set Buddy Integer : 버디컨트롤의값이정수라면, 이프로퍼티를설정한경우 Spin 컨트롤이버디컨트롤의값을저절로변경해줄수있다. No Thousands : 1000 자리구분콤마사용여부지정 Arrow Key : 화살표키를이용하여값을바꿀수있는지여부지정

윈도우시스템프로그래밍

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

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

Microsoft PowerPoint - CPP_chap3

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

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

윈도우시스템프로그래밍

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

More information

윈도우 프로그래밍의 개념

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

More information

PowerPoint Template

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

More information

Microsoft PowerPoint - hci2-lecture11.ppt

Microsoft PowerPoint - hci2-lecture11.ppt 공통컨트롤 (Window Common Control) 공통컨트롤 HCI Programming 2 (321190) 2007 년가을학기 12/3/2007 박경신 Animate Control Image List Control List Control Progress Bar Control Tab Control Tree Control Spin Control Slider

More information

Microsoft PowerPoint - hci2-lecture11.ppt

Microsoft PowerPoint - hci2-lecture11.ppt 공통컨트롤 HCI Programming 2 (321190) 2008 년가을학기 11/26/2008 박경신 공통컨트롤 (Window Common Control) Animate Control Image List Control List Control Progress Bar Control Tab Control Tree Control Spin Control Slider

More information

그래픽 프로그래밍

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

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

윈도우 프로그래밍의 개념

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

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

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

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 - CPP_chap6_interface(2)

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

More information

어댑터뷰

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

More information

슬라이드 1

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

More information

04장 메시지 처리 유형

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

More information

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

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

More information

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

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

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 - 09-CE-5-윈도우 핸들

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

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

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

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

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 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

5장 MFC기반 다지기

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

More information

Programming hwp

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

More information

<4D F736F F F696E74202D203038C0E520C7A5C1D820C4C1C6AEB7D1205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D203038C0E520C7A5C1D820C4C1C6AEB7D1205BC8A3C8AF20B8F0B5E55D> 08: 표준컨트롤 학습목표 컨트롤의동작원리를이해한다. 표준컨트롤의다양한속성과통지메시지를이해한다. MFC 컨트롤클래스를이용하여표준컨트롤을다루는방법을익힌다. 서브클래싱과메시지반사기법을이해한다. 개요 (1/4) 컨트롤 표준화된형태와특성을가진윈도우 사용자에게입력을받거나정보를보여줌 1 개요 (2/4) 컨트롤과부모윈도우 컨트롤 ( 자식윈도우 ) 1 통지메시지 2 컨트롤메시지

More information

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

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

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

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

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

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

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

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

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

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

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

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

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

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

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

歯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

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

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

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

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 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

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

슬라이드 1

슬라이드 1 모바일소프트웨어프로젝트 지도 API 1 조 20070216 김성수 20070383 김혜준 20070965 이윤상 20071335 최진 1 매시업? 공개 API? 2 매시업 웹으로제공하고있는정보와서비스를융합하여새로운소프트웨어나서비스, 데이터베이스등을만드는것 < 최초의매시업 > 3 공개 API 누구나사용할수있도록공개된 API 지도, 검색등다양한서비스들에서제공 대표적인예

More information

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

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

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 - 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

Microsoft PowerPoint _파일입출력.ppt

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

More information

Programming hwp

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

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

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

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

More information

오버라이딩 (Overriding)

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

More information

설계란 무엇인가?

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

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

Programming hwp

Programming hwp 3 장 MFC 프로그래밍 윈도우응용프로그램개발을용이하게할수있도록 Visual C++ 에서는 MFC 클래스라이브러리와응용프로그램마법사 (AppWizard), 클래스마법사 (ClassWizard), 리소스편집기 (Resource Editor) 등의다양한도구를제공하고있다. 이장에서는응용프로그램마법사등의도구들은사용하지않고 MFC만을사용하여윈도우응용프로그램을작성하는방법을설명한다.

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

Convenience Timetable Design

Convenience Timetable Design Convenience Timetable Design Team 4 2 Contents 1. Introduction 2. Decomposition description 3. Dependency description 4. Inter face description 5. Detailed design description 3 1. Introduction Purpose

More information

C++ Programming

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

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

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

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

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

More information

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation="vertical" > 4 <ImageView

[ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 <LinearLayout 2 ~~~~ 중간생략 ~~~~ 3 android:orientation=vertical > 4 <ImageView 7 차시이미지처리 1 학습목표 이미지뷰를사용하는방법을배운다. 비트맵을사용하는방법을배운다. 2 확인해볼까? 3 이미지뷰와이미지버튼 1) 학습하기 [ 그림 7-1] 프로젝트 res 폴더 이미지뷰 [ 예제 7-1] 이미지뷰 1 4

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

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.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 학습목표 중 값에 의한 전달 방법과

More information

쉽게 풀어쓴 C 프로그래밍

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

More information

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

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

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

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-lecture8.ppt

Microsoft PowerPoint - hci2-lecture8.ppt 표준컨트롤 HCI Programming 2 (321190) 2008 년가을학기 11/11/2008 박경신 Overview FormView 컨트롤 (Control) 의동작원리 표준컨트롤의다양한속성과통지메시지 버튼, 에디트, 체크박스, 라디오버튼, 리스트박스등 MFC 컨트롤클래스를이용하여표준컨트롤을다루는방법 서브클래싱과메시지반사기법 2 Form View FormView

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

윈도우즈 프로그래밍

윈도우즈 프로그래밍 7 장컨트롤 VS 2015 007. 윈도우프로그래밍 Updated 2010. 10. 11 Updated 2012. 09. 18 Updated 2015. 09. 15 http://idb.korea.ac.kr DB & Data Mining LAB. Korea University 이종욱 eastwest9@korea.ac.kr 1 7-1 컨트롤의정의 1 컨트롤 (control)

More information

4장기본프로그래밍2

4장기본프로그래밍2 4-2 마우스 (Mouse) 마우스이벤트 Click 이벤트 마우스버튼이눌렸다가떼어질때발생 DblClick 이벤트 마우스버튼이두번눌렸다가떼어질때발생 MouseDown 이벤트 마우스버튼이눌렸을때발생 MouseUp 이벤트 마우스버튼이떼어질때발생 MouseMove 이벤트 마우스가움직일때발생 DragOver 이벤트 마우스버튼을누른상태에서끌기를했을때발생 DragDrop

More information

17장 클래스와 메소드

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

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 - additional08.ppt [호환 모드]

Microsoft PowerPoint - additional08.ppt [호환 모드] 8. 상속과다형성 (polymorphism) 상속된객체와포인터 / 참조자의관계 정적바인딩과동적바인딩 virtual 소멸자 Jong Hyuk Park 상속의조건 public 상속은 is-a 관계가성립되도록하자. 일반화 ParttimeStd 구체화 2 상속의조건 잘못된상속의예 현실세계와완전히동떨어진모델이형성됨 3 상속의조건 HAS-A( 소유 ) 관계에의한상속!

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

More information

Visual Basic 기본컨트롤

Visual Basic 기본컨트롤 학습목표 폼 ( Form) 폼의속성, 컨트롤이름, 컨트롤메서드 기본컨트롤 레이블, 텍스트박스, 버튼, 리스트박스 이벤트 버튼 기본컨트롤실습 2 2.1 폼 (Form) 2.2 기본컨트롤 2.3 기본컨트롤실습 3 폼 - 속성 속성 (Name) AutoSize BackColor Font ForeColor Icon StartPosition Transparency WindowState

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

Frama-C/JESSIS 사용법 소개

Frama-C/JESSIS 사용법 소개 Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

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

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

Microsoft PowerPoint - hci2-lecture8.ppt

Microsoft PowerPoint - hci2-lecture8.ppt 표준컨트롤 HCI Programming 2 (321190) 2007 년가을학기 11/12/2007 박경신 Overview FormView 컨트롤 (Control) 의동작원리 표준컨트롤의다양한속성과통지메시지 버튼, 에디트, 체크박스, 라디오버튼, 리스트박스등 MFC 컨트롤클래스를이용하여표준컨트롤을다루는방법 서브클래싱과메시지반사기법 2 Form View FormView

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

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

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

9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 9 차시고급위젯다루기 1 학습목표 날짜 / 시간과관련된위젯을배운다. 웹뷰를사용하여간단한웹브라우저기능을구현한다. 매니패스트파일의설정법을배운다. 2 확인해볼까? 3 날짜 / 시간위젯 1) 활동하기 활동개요 [ 그림 9-1] 시간예약앱 활동과정 - 2 - [ 그림 9-2] 안드로이드 SDK Manager [ 예제 9-1]main.xml 1

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

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

Microsoft PowerPoint - 09-Object Oriented Programming-3.pptx Development of Fashion CAD System 9. Object Oriented Programming-3 Sungmin Kim SEOUL NATIONAL UNIVERSITY Introduction Topics Object Oriented Programming (OOP) 정의 복수의 pattern object 로 이루어지는 새로운 class Pattern

More information

08장 윈도우에서의 그리기

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

More information