Microsoft PowerPoint - hci2-lecture8.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - hci2-lecture8.ppt"

Transcription

1 표준컨트롤 HCI Programming 2 (321190) 2007 년가을학기 11/12/2007 박경신 Overview FormView 컨트롤 (Control) 의동작원리 표준컨트롤의다양한속성과통지메시지 버튼, 에디트, 체크박스, 라디오버튼, 리스트박스등 MFC 컨트롤클래스를이용하여표준컨트롤을다루는방법 서브클래싱과메시지반사기법 2 Form View FormView Project 생성 CView 를상속받은 SDI 형태의프로그램구조를갖고있으면서도, 컨트롤을사용할수있는형태 CMainFrame 의자식윈도우 CFormView 클래스를상속받아사용자정의폼뷰프로그램을작성 3 // 뷰가화면에보여지기전에호출되는함수, FormView로생성시자동추가 // 컨트롤초기화를위한함수 void CExButtonView::OnInitialUpdate() CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); /// 컨트롤초기화코드추가부분 4

2 FormView 의리소스 컨트롤 컨트롤 표준화된형태와특성을가진윈도우 사용자에게입력을받거나정보를보여줌 5 6 컨트롤과부모윈도우 컨트롤과부모윈도우 1통지메시지컨트롤 ( 자식윈도우 ) 2 컨트롤메시지 통지메시지 (Notification Message) 대개 WM_COMMAND 메시지를보냄 컨트롤의상태가변화되었음을알림 메모리부족등으로인한오류를알림 컨트롤메시지 (Control Message) 부모윈도우 부모윈도우는컨트롤의상태를알아내거나변경시키기위해사용 ShowWindow() 함수를이용하여컨트롤을보이게하거나숨길수있으며, EnableWindow() 함수를이용하여컨트롤을사용하거나사용하지못하게할수있음 7 MFC 컨트롤클래스 MFC 컨트롤클래스 컨트롤 MFC 클래스 버튼컨트롤 CButton 정적컨트롤 CStatic 편집컨트롤 CEdit 리스트박스컨트롤 CListBox 콤보박스컨트롤 CComboBox 스크롤바컨트롤 CScrollBar 컨트롤버튼 8

3 MFC 클래스계층도 MFC 클래스계층도 버튼컨트롤 버튼컨트롤종류 Push Button, Check Box, Radio Button, Group Box 컨트롤도윈도우다! 라디오버튼그룹 그룹으로묶어야할라디오버튼중첫번째항목에그룹속성부여 9 10 버튼컨트롤 버튼컨트롤 컨트롤생성방법 1. 일반윈도우에서동적버튼컨트롤만들기 2. 대화상자에만들기컨트롤생성 - 첫번째방법 버튼생성함수 CButton::Create() BOOL CButton::Create (LPCTSTR lpszcaption, DWORD dwstyle, const RECT& rect, CWnd* pparentwnd, UINT nid) ; CButton m_button; // C++ 객체생성 m_button.create(" 누르세요 ", WS_CHILD WS_VISIBLE BS_PUSHBUTTON, CRect(100, 100, 200, 130), this, 101); // 푸시버튼생성 lpszcaption - 캡션문자열 dwstyle - 일반윈도우스타일 + 버튼컨트롤스타일 BS_PUSHBUTTON/BS_CHECKBOX/BS_RADIOBUTTON/BS_GR OUPBOX rect - 컨트롤크기와위치 pparentwnd - 부모윈도우 UINT nid - 컨트롤 ID 11 12

4 버튼컨트롤 버튼컨트롤스타일 버튼컨트롤 버튼컨트롤통지메시지 버튼컨트롤스타일 BS_PUSHBUTTON BS_DEFPUSHBUTTON BS_CHECKBOX BS_AUTOCHECKBOX BS_3STATE BS_AUTO3STATE BS_RADIOBUTTON BS_AUTORADIOBUTT ON 의미 푸시버튼 기본푸시버튼 : 대화상자에서사용할때는 Enter 키를누르면이버튼이눌려짐 ( 일반윈도우에서는차이없음 ) 체크박스자동체크박스 : 클릭하면자동으로체크표시가 On/Off 3상태체크박스자동 3상태체크박스 : 클릭하면자동으로체크표시가 On/Grayed/Of 라디오버튼자동라디오버튼 : 클릭하면자동으로선택과선택해제가이뤄짐과선택해제가이루어짐 통지메시지 BN_CLICKED BN_DBLCLK BN_DISABLE BS_DOUBLECLICKED BN_HILITE BN_UNHILITE BN_SETFOCUS BN_KILLFOCUS BN_PAINT 내용버튼을좌측마우스버튼으로클릭했음버튼을좌측마우스버튼으로더블클릭했음버튼이비활성화되었음라디오버튼이나 BS_OWNERDRAW 스타일버튼에서좌측마우스버튼을더블클릭했음사용자가버튼을선택하였을때발생하는메시지사용자가버튼에서다른윈도우로전환되었을때메시지버튼에포커스가주어졌을때메시지버튼에서포커스가사라졌을때메시지버튼이다시그려질때발생하는메시지 BS_GROUPBOX 그룹박스 버튼컨트롤 통지메시지처리하기 메시지핸들러작성 버튼컨트롤예제작성 프로젝트생성 ON_BN_CLICKED(101, OnButtonClicked) // 메시지맵... void CExButtonView::OnButtonClicked() // 메시지핸들러 MessageBox(" 버튼을눌렀습니다."); 컨트롤메시지보내기 멤버함수호출 m_button.setcheck(bst_checked); 15 16

5 버튼컨트롤예제작성 1~6 단계옵션설정 버튼컨트롤예제작성 코드추가 단계변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 3 DB 변경사항없음 4 UI 변경사항없음 5 Advanced Features 'ActiveX Controls' 선택을해제한다. 6 Generated Classes 변경사항없음 17 class CExButtonView: public CView DECLARE_DYNCREATE(CExButtonView) protected: CExButtonView(); public: CExButtonDoc* GetDocument(); CButton m_pushbutton; CButton m_checkbox; CButton m_radio1, m_radio2; CButton m_groupbox; 18 버튼컨트롤예제작성 버튼컨트롤예제작성 코드추가 int CExButtonView::OnCreate(LPCREATESTRUCT lpcreatestruct) if (CView::OnCreate(lpCreateStruct) == -1) return -1; m_pushbutton.create( Push Button, WS_CHILD WS_VISIBLE BS_PUSHBUTTON, CRect(20, 20, 150, 50), this, 101); m_checkbox.create( Check Box, WS_CHILD WS_VISIBLE BS_AUTOCHECKBOX, CRect(20, 70, 150, 100), this, 102); m_radio1.create( Radio Button 1, WS_CHILD WS_GROUP BS_AUTORADIOBUTTON, CRect(20, 140, 150, 170), this, 103); m_radio2.create( Radio Button 2, WS_CHILD WS_GROUP BS_AUTORADIOBUTTON, CRect(20, 180, 150, 210), this, 104); 19 코드추가 m_groupbox.create( Group Box, WS_CHILD WS_VISIBLE BS_GROUPBOX, CRect(10, 110, 160, 220), this, 105); m_checkbox.setcheck(bst_checked); m_radio1.setcheck(bst_checked); return 0; BEGIN_MESSAGE_MAP(CExButtonView, CView) ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint) ON_COMMAND(ID_FILE_PREVIEW, &CView::OnFilePrintPreview) ON_WM_CREATE() ON_BN_CLICKED(101, OnButtonClicked) END_MESSAGE_MAP() 20

6 버튼컨트롤예제작성 버튼컨트롤예제작성 void CExButtonView::OnButtonClicked() BOOL bcheckbox, bradio1, bradio2; bcheckbox = bradio1 = bradio2 = FALSE; if (m_checkbox.getcheck() == BST_CHECKED) bcheckbox = TRUE; if (m_radio1.getcheck() == BST_CHECKED) bradio1 = TRUE; if (m_radio2.getcheck() == BST_CHECKED) bradio2 = TRUE; Cstring str1, str2, str3; if (bcheckbox) str1 = 체크박스 on ; else str1 = 체크박스 off ; if (bradio1) str2 = 라디오버튼 1 on ; else str2 = 라디오버튼 1 off ; if (bradio2) str3 = 라디오버튼 2 on ; else str3 = 라디오버튼 2 off ; AfxMessageBox(str1 + \n + str2 + \n + str3); 21 실행결과 22 버튼컨트롤 버튼컨트롤 컨트롤생성 - 두번째방법 리소스의대화상자템플릿에컨트롤배치 대화상자가생성될때컨트롤도자동으로생성 컨트롤변수생성 컨트롤자체를나타내는변수 (= 컨트롤변수 ) 를생성하고이를이용하여컨트롤을조작 컨트롤변수생성 // 헤더파일 class CExButtonView : public CFormView... CButton m_button; // 구현파일 void CExButtonView::DoDataExchange(CDataExchange* pdx) CFormView::DoDataExchange(pDX); //AFX_DATA_MAP(CExButtonView) DDX_Control(pDX, IDC_BUTTON1, m_button); //AFX_DATA_MAP 23 24

7 버튼컨트롤예제작성 대화상자에만들기 프로젝트생성 1~6 단계옵션설정 버튼컨트롤예제작성 대화상자에만들기 Generated Classes 에서뷰클래스의베이스클래스로 CFormView 를선택함 단계 변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 3 DB 변경사항없음 4 UI 변경사항없음 5 Advanced Features 'ActiveX Controls' 선택을해제함 6 Generated Classes 에서뷰클래스의베이스클래스로 CFormView 를선택함 버튼컨트롤예제작성 대화상자에만들기 버튼컨트롤예제작성 대화상자에만들기 ExButton2.rc 에서 Dialog 의 IDD_EXBUTTON2_FORM 을 Toolbox 를이용하여컨트롤을추가 27 각컨트롤의속성 Caption ID Button 1 IDC_BUTTON1 Button 2 IDC_BUTTON1 Check 1 IDC_CHECK1 Check 2 IDC_CHECK2 Radio 1 IDC_RADIO1 Radio 2 IDC_RADIO2 Group Box IDC_STATIC IDC_DATETIMEPICKER1 IDC_MONTHCALENDAR1 기타변경사항 General 탭에서 Group 속성을체크 28

8 버튼컨트롤예제작성 대화상자에만들기 Button1 과 Button2 에 Add Event Handler 추가 버튼컨트롤예제작성 대화상자에만들기 코드추가 // 헤더파일 class CExButton2View: public CFormView DECLARE_DYNCREATE(CExButton2View) protected: CExButton2View(); 29 public: enum IDD = IDD_EXBUTTON2_FORM ; CExButton2Doc* GetDocument() const; CButton m_checkbox1, m_checkbox2; CButton m_radio1, m_radio2; 30 버튼컨트롤예제작성 대화상자에만들기 void CExButton2View::DoDataExchange(CDataExchange* pdx) CFormView::DoDataExchange(pDX); DDX_Control(pDX, IDC_RADIO1, m_radio1); DDX_Control(pDX, IDC_RADIO2, m_radio2); DDX_Control(pDX, IDC_CHECK1, m_checkbox1); DDX_Control(pDX, IDC_CHECK2, m_checkbox2); void CExButton2View::OnInitialUpdate() CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); m_checkbox1.setcheck(bst_checked); m_radio1.setcheck(bst_checked); void CExButton2View::OnBnClickedButton1() BOOL bcheckbox1, bcheckbox2, bradio1, bradio2; bcheckbox1 = bcheckbox2 = bradio1 = bradio2 = FALSE; if(m_checkbox1.getcheck() == BST_CHECKED) bcheckbox1 = TRUE; if(m_checkbox2.getcheck() == BST_CHECKED) bcheckbox2 = TRUE; if(m_radio1.getcheck() == BST_CHECKED) bradio1 = TRUE; if(m_radio2.getcheck() == BST_CHECKED) bradio2 = TRUE; CString str1, str2, str3, str4; if(bcheckbox1) str1 = " 체크박스이체크 on"; else str1 = " 체크박스이체크 off"; if(bcheckbox2) str2 = " 체크박스가체크 on"; else str2 = " 체크박스가체크 off"; if(bradio1) str3 = " 라디오버튼이선택 on"; else str3 = " 라디오버튼이선택 off"; if(bradio2) str4 = " 라디오버튼가선택 on"; else str4 = " 라디오버튼가선택 off"; MessageBox(str1 + '\n' + str2 + '\n' + str3 + '\n' + str4); 31 32

9 버튼컨트롤예제작성 대화상자에만들기 실행결과 정적컨트롤 정적컨트롤종류 텍스트 프레임 ( 색으로채워지지않은사각형 ), 사각형 ( 색으로채워진사각형 ), 아이콘, 비트맵, 향상된메타파일 (Enhanced Metafile) 정적컨트롤 통지메시지 SS_NOTIFY 스타일을설정하면통지메시지발생 STN_CLICKED( 클릭 ) STN_DBLCLK( 더블클릭 ) STN_DISABLE( 비활성화 ) STN_ENABLE( 활성화 ) 정적컨트롤예제작성 프로젝트생성 1~6단계옵션설정단계변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 3 DB 변경사항없음 4 UI 변경사항없음 5 Advanced Features 'ActiveX Controls' 선택을해제함 6 Generated Classes 에서뷰클래스의베이스클래스로 CFormView 를선택함 35 36

10 정적컨트롤예제작성 Resource View 에서 IDD_EXSTATIC_FORM 대화상자를디자인한다 Bitmap File Bitmap from Resource Metafile Icon 37 정적컨트롤예제작성 각컨트롤의속성 ID Control IDC_STATIC_TEXT Text Control IDC_STATIC_FILE Picture Control IDC_STATIC_RC Picture Control IDC_ENHMETA Picture Control IDC_STATIC_ICON Picture Control IDC_STATIC_PIC Picture Control IDC_STATIC_RECT Picture Control 변경사항 Caption 을정적컨트롤입니다 Type 을 Bitmap 로바꾼후 Center Image 를 True 로설정 Type 을 Bitmap 로바꾼후 Image 를 IDB_BITMAP1 로설정 Type 을 Enhanced Metafile 로바꾼후 Styles 에서 Notify 스타일을 True 로설정 Type 을 Icon 로바꾼후 Image 에서 IDR_EXSTATYPE 선택 변경사항없음 Type을 Rectangle로 Color를 38 Gray로변경 정적컨트롤예제작성 정적컨트롤예제작성 void CExStaticView::OnInitialUpdate() CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); HANDLE h = ::LoadImage(AfxGetInstanceHandle(), "coffee.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); CStatic* pstatic = (CStatic*)GetDlgItem(IDC_STATIC_FILE); if(h && pstatic) pstatic->setbitmap((hbitmap)h); m_enhmeta.setenhmetafile(::getenhmetafile( Example.emf )); void CExStaticView::OnEnhmeta() MessageBox( 메타파일로그린그림을클릭했습니다 ); 실행결과 39 40

11 편집컨트롤 텍스트를입력받고편집하는기능 편집컨트롤종류 속성대화상자 편집컨트롤 편집컨트롤스타일 편집컨트롤스타일 의미 속성대화상자의항목 ES_AUTOHSCROLL 줄끝에도달하면자동으로수평스크롤 Auto HScroll ES_AUTOVSCROLL 줄끝에도달하면자동으로수직스크롤 Auto VScroll ES_CENTER 텍스트를가운데정렬 Align text: Centered ES_LEFT 텍스트를왼쪽정렬 Align text: Left ES_LOWERCASE 입력된모든문자를소문자로변환 Lowercase ES_MULTILINE 다중라인편집컨트롤임을나타냄 Multiline ES_NOHIDESEL 컨트롤이키보드포커스를잃더라도선 No hide selection 택된텍스트가계속반전된상태로남아있도록함 ES_NUMBER 숫자만입력할수있다. Number 편집컨트롤 편집컨트롤스타일 편집컨트롤스타일 ES_OEMCONVERT ES_PASSWORD ES_READONLY ES_RIGHT ES_UPPERCASE ES_WANTRETURN 의미속성대화상자의항목입력된텍스트가 OEM 문자셋으로변환 OEM convert 되어편집컨트롤내부에저장단일라인편집컨트롤에만사용할수있 Password 으며입력된문자를 * 로표시텍스트를읽기만가능하다. 텍스트를오른쪽정렬한다. 입력된모든문자를대문자로변환한다. 다중라인편집컨트롤에만사용할수있으며이스타일을지정하지않으면대화상자에서 Enter 키를이용한줄바꿈이되지않는다. Ctrl+Enter 키를이용하면이스타일과무관하게줄바꿈을할수있다. Read-only Align text: Right Uppercase Want return 43 편집컨트롤 편집컨트롤통지메시지 통지메시지 EN_CHANGE 의미사용자가컨트롤의내용을변경하면화면에컨트롤을다시그리는데그후에이메시지가발생한다. EN_ERRSPACE 메모리가부족하다. EN_HSCROLL 사용자가편집컨트롤의수평스크롤바를클릭하였다. EN_KILLFOCUS 키보드포커스를잃었다. EN_MAXTEXT 더이상문자를입력할수없다. CEdit::SetLimitText 함수로문자개수를제한한경우나 ES_AUTOHSCROLL, ES_AUTOVSCROLL 등의스타일을지정하지않은상태에서줄끝까지입력한경우에발생한다. EN_SETFOCUS 키보드포커스를얻었다. EN_UPDATE 사용자가컨트롤의내용을변경하면화면에컨트롤을다시그리는데그직전에이메시지가발생한다. EN_VSCROLL 사용자가편집컨트롤의수직스크롤바를클릭하였다. 44

12 편집컨트롤 텍스트를변경하거나입력된텍스트를얻기 m_edit.setwindowtext(" 초기값입니다."); // 편집컨트롤의텍스트변경 CString str; m_edit.getwindowtext(str); // 편집컨트롤에저장된텍스트를얻음 입력가능한문자열의길이를제한하기 편집컨트롤 텍스트선택과치환하기 // 여섯번째문자부터시작해서두개의문자가선택 1 m_edit.setsel(5, 7); // 현재선택된부분을새로운문자열로치환 2 m_edit.replacesel("abc"); 1 을실행하기전 m_edit.setlimittext(10); // 한글을최대다섯글자까지입력가능 각종편집작업 클립보드를이용한편집 m_edit.clear(); // 현재선택된문자열을삭제 m_edit.cut(); // 클립보드에저장 m_edit.copy(); // 클립보드에저장 m_edit.paste(); // 클립보드에저장된내용을붙여넣음 m_edit.undo(); // 이전에실행한것을취소 45 1 을실행한후 2 를실행한후 46 편집컨트롤 편집컨트롤예제작성 편집컨트롤끝부분에새로운문자열을삽입 Int len = m_edit.getwindowtextlength(); m_edit.setsel(len, len); m_edit.replacesel(strnewtext); // 새로추가한문자열 편집컨트롤에멀티라인으로문자넣기 strtext.format( 문자열 1 \r \n 문자열 2 ); // \r\n 를함께기입할것 m_edit.setwindowtext(strtext); 편집컨트롤을사용한양력에서음력으로변환하는예제 1~6 단계옵션설정 단계 변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 3 DB 변경사항없음 4 UI 변경사항없음 5 Advanced Features 'ActiveX Controls' 선택을해제함 6 Generated Classes 에서뷰클래스의베이스클래스로 CFormView 를선택함 47 48

13 편집컨트롤예제작성 편집컨트롤예제작성 Resource View 에서 IDD_EXEDIT_FORM 대화상자를디자인한다 각컨트롤의속성 ID Control 변경사항 IDC_S_YEAR Edit Control IDC_S_MONTH Edit Control IDC_S_DAY Edit Control IDC_L_YEAR Edit Control IDC_L_MONTH Edit Control IDC_L_DAY Edit Control IDC_BUTTON_CONVERT Button Control Icon 을 True 로변경 편집컨트롤예제작성 편집컨트롤예제작성 void CExEditView::OnInitialUpdate() CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); HANDLE h = ::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ICON_DOWNARROW)); CButton* piconbutton = (CButton*)GetDlgItem(IDC_BUTTON_CONVERT); if(h && piconbutton) piconbutton->seticon((hicon)h); 51 void CExEditView::DoDataExchange(CDataExchange* pdx) CFormView::DoDataExchange(pDX); DDX_Text(pDX, IDC_S_DAY, m_nsday); DDX_Text(pDX, IDC_S_MONTH, m_nsmonth); DDX_Text(pDX, IDC_S_YEAR, m_nsyear); DDX_Text(pDX, IDC_L_DAY, m_nlday); DDX_Text(pDX, IDC_L_MONTH, m_nlmonth); DDX_Text(pDX, IDC_L_YEAR, m_nlyear); 52

14 편집컨트롤예제작성 편집컨트롤예제작성 CExEditView::CExEditView() : CFormView(CExEditView::IDD) // TODO: add construction code here m_nsday = 1; m_nsmonth = 11; m_nsyear = 2007; m_nlday = 0; m_nlmonth = 0; m_nlyear = 0; void CExEditView::OnBnClickedButtonConvert() // TODO: Add your control notification handler code here UpdateData(TRUE); int nyoun; get_negative(m_nsyear, m_nsmonth, m_nsday, &m_nlyear, &m_nlmonth, &m_nlday, &nyoun); UpdateData(FALSE); 편집컨트롤예제작성 실행결과 리스트박스컨트롤 여러개의문자열을관리 ( 추가, 선택, 삭제등 ) 하는구조 리스트박스컨트롤종류 단일선택리스트박스 다중선택리스트박스 속성대화상자 55 56

15 리스트박스컨트롤 리스트박스컨트롤스타일 리스트박스컨트롤 리스트박스컨트롤스타일 리스트박스컨트롤스타일 LBS_DISABLENOSCR OLL LBS_EXTENDEDSEL LBS_HASSTRINGS 의미속성대화상자항목표시할항목의개수가적은경우에 Disable no scroll 도수직스크롤바가사라지지않는다. SHIFT, CTRL 키와마우스클릭을이용한다중선택이가능하다. LBS_OWNERDRAW* 스타일을지정하지않을경우의디폴트스타일이며컨트롤이문자열을저장및관리한다. Selection: Extended Has strings 리스트박스컨트롤스타일 LBS_MULTIPLESEL LBS_NODATA LBS_NOINTEGRAL HEIGHT 의미 마우스클릭을이용한다중선택이가능하다. 항목데이터를컨트롤이아닌부모윈도우가유지하며필요할때마다부모윈도우가직접그린다. 항목의개수가 1000 개이상일경우에사용한다. 이스타일을지정하지않으면항목의일부가잘려서보이지않는경우가발생할수있다. 속성대화상자항목 Selection: Multiple 없음 No integral height LBS_MULTICOLUMN 여러줄 (Column) 로구성된리스트박스를생성하며항목이많을경우수평스크롤이가능하다. Multi-column LBS_NOREDRAW 항목에변화가생기더라도리스트박스컨트롤을다시그리지않는다. No redraw 리스트박스컨트롤 리스트박스컨트롤스타일 리스트박스컨트롤 리스트박스컨트롤스타일 리스트박스컨트롤스타일 LBS_NOSEL LBS_NOTIFY LBS_OWNERDRA WFIXED LBS_OWNERDRA WVARIABLE 의미 항목을선택할수없다. 사용자가항목을클릭하거나더블클릭하면부모윈도우에게통지메시지를보낸다. 부모윈도우가리스트박스항목을직접그리되항목의높이가일정한경우이다. 부모윈도우가리스트박스항목을직접그리되항목의높이가일정하지않은경우이다. 속성대화상자의항목 Selection: None Notify Owner draw: Fixed Owner draw: Variable 리스트박스컨트롤스타일 LBS_SORT LBS_STANDARD LBS_USETABSTOPS LBS_WANTKEYBO ARDINPUT 의미 항목이문자열인경우정렬하여표시한다. LBS_NOTIFY, LBS_SORT, WS_VSCROLL, WS_BORDER 네가지스타일의조합이다. 이스타일을지정하면항목문자열에포함된탭문자 ('\t') 를제대로처리할수있다. 리스트박스컨트롤이키보드포커스를가진상태에서사용자가키를누르면부모윈도우가이를감지하여특별한처리를할수있다. 속성대화상자의항목 Sort Notify, Sort, Border, Vertical scroll Use tabstops Want key input 59 60

16 리스트박스컨트롤 리스트박스컨트롤통지메시지 통지메시지 의미 LBN_DBLCLK 사용자가항목을더블클릭하였다. LBN_SELCHANGE 사용자가선택을변경하였다. LBN_SELCANCEL 사용자가선택을취소하였다. LBN_SETFOCUS 키보드포커스를얻었다. LBN_KILLFOCUS 키보드포커스를잃었다. LBN_ERRSPACE 메모리가부족하다. LBN_DBLCLK, LBN_SELCHANGE, LBN_SELCANCEL 통지메시지는 LBS_NOTIFY 스타일을설정해야발생 61 리스트박스컨트롤 리스트박스초기화 m_list.resetcontent(); 리스트박스항목추가와삭제 m_list.addstring(" 사과 "); // 문자열항목을끝부분에추가 m_list.deletestring(3); // 네번째항목을삭제 리스트박스항목선택 // 단일선택리스트박스컨트롤인경우 m_list.setcursel(2); // 세번째항목을선택 // 다중선택리스트박스컨트롤인경우 m_list.setsel(2); // 세번째항목을선택 m_list.setsel(3, FALSE); // 네번째항목을선택해제 62 리스트박스컨트롤 리스트박스컨트롤예제작성 리스트박스선택된항목확인 // 단일선택리스트박스컨트롤인경우 int nindex = m_list.getcursel(); if(nindex!= LB_ERR) CString str; m_list.gettext(nindex, str); // 다중선택리스트박스컨트롤인경우 int nindex = m_list.getcaretindex(); if(nindex!= LB_ERR) CString str; m_list.gettext(nindex, str); 버튼, 편집, 리스트박스컨트롤을사용한항목추가, 삭제, 변경하는예제 1~6 단계옵션설정 단계 변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 3 DB 변경사항없음 4 UI 변경사항없음 5 Advanced Features 'ActiveX Controls' 선택을해제함 6 Generated Classes 에서뷰클래스의베이스클래스로 CFormView 를선택함 63 64

17 리스트박스컨트롤예제작성 리스트박스컨트롤예제작성 Resource View 에서 IDD_EXLIST_FORM 대화상자를디자인한다 각컨트롤의속성 ID Control 변경사항 IDC_ELEMENT IDC_LIST IDC_BUTTON_ADD IDC_BUTTON_MODIFY IDC_BUTTON_DEL Edit Control ListBox Control Button Control Button Control Button Control Default Button 을 TRUE IDC_BUTTON_DELALL Button Control 리스트박스컨트롤예제작성 Add Variable Wizard 를이용해서리스트박스컨트롤에대한컨트롤변수 m_ctrllist 를생성한다 리스트박스컨트롤예제작성 Event Handler Wizard 를이용해서컨트롤핸들러를생성한다 OnBnClickedButtonAdd, OnBnClickedButtonModify, OnBnClickedButtonDel, OnBnClickedButtonDelall 리스트박스컨트롤에대한 OnLbnSelchangeList 67 68

18 리스트박스컨트롤예제작성 리스트박스컨트롤예제작성 class CExListBoxDoc : public CDocument public: CString m_str; CStringList m_stringlist; CExListBoxDoc(); virtual ~CExListBoxDoc(); virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); virtual void DeleteContents(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif void CExListBoxDoc::DeleteContents() m_stringlist.removeall(); void CExListBoxDoc::Serialize(CArchive& ar) m_stringlist.serialize(ar); void CExListBoxView::DoDataExchange(CDataExchange* pdx) CFormView::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST, m_ctrllist); DDX_Text(pDX, IDC_ELEMENT, m_strelement); ; 리스트박스컨트롤예제작성 리스트박스컨트롤예제작성 void CExListBoxView::OnInitialUpdate() CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); m_ctrllist.resetcontent(); // 모든 CStringList의값을리스트박스에추가 CStringList& stringlist = GetDocument()->m_stringList; POSITION pos = stringlist.getheadposition(); while (pos!= NULL) CString str = stringlist.getnext(pos); m_ctrllist.addstring(str); 71 void CExListBoxView::OnBnClickedButtonAdd() // TODO: Add your control notification handler code here if (UpdateData()!= TRUE) return; // CStringList 에새로운 string 추가 GetDocument()->m_stringList.AddTail(m_strElement); // 리스트박스에새로운 string 추가 m_ctrllist.addstring(m_strelement); 72

19 리스트박스컨트롤예제작성 리스트박스컨트롤예제작성 실행결과 void CExListBoxView::OnLbnSelchangeList() // TODO: Add your control notification handler code here // 편집컨트롤을 Update 해서 // 리스트박스에새로운 selection 이추가된것을변경 m_ctrllist.gettext(m_ctrllist.getcursel(), m_strelement); UpdateData(FALSE); 콤보박스컨트롤 여러개의문자열을관리하는구조로화살표버튼을누르면리스트를보여선택가능한구조 콤보박스컨트롤종류편집컨트롤정적컨트롤 콤보박스컨트롤 속성대화상자 리스트박스컨트롤 단순스타일 드랍다운스타일 드랍다운리스트스타일 75 76

20 콤보박스컨트롤 콤보박스컨트롤스타일 콤보박스컨트롤스타일 CBS_AUTOHSCROLL CBS_DISABLENOSCROLL CBS_DROPDOWN CBS_DROPDOWNLIST CBS_HASSTRINGS CBS_LOWERCASE CBS_NOINTEGRALHEIGHT CBS_OEMCONVERT CBS_OWNERDRAWFIXED CBS_OWNERDRAWVARIABLE CBS_SIMPLE CBS_SORT CBS_UPPERCASE 의미 = ES_AUTOHSCROLL = LBS_DISABLENOSCROLL 드랍다운스타일드랍다운리스트스타일 = LBS_HASSTRINGS = ES_LOWERCASE = LBS_NOINTEGRALHEIGH = ES_OEMCONVERT T = LBS_OWNERDRAWFIXED = LBS_OWNERDRAWVARIA 단순스타일 BLE = LBS_SORT = ES_UPPERCASE 속성대화상자의항목 Auto HScroll Disable no scroll Type: Dropdown Type: Drop List Has strings Lowercase No integral height OEM convert Owner draw: Fixed Owner draw: Variable Type: Simple Sort Uppercase 77 콤보박스컨트롤 콤보박스컨트롤통지메시지 통지메시지 CBN_CLOSEUP CBN_DBLCLK CBN_DROPDOWN CBN_EDITCHANGE CBN_EDITUPDATE CBN_ERRSPACE CBN_KILLFOCUS CBN_SELCHANGE CBN_SELENDCANCEL CBN_SELENDOK CBN_SETFOCUS 의미 리스트박스가닫혔다. 사용자가항목을더블클릭하였다. 리스트박스가열리기직전이다. = EN_EDITCHANGE = EN_EDITUPDATE 메모리가부족하다. 키보드포커스를잃었다. = LBN_SELCHANGE = LBN_SELENDCANCEL 사용자가항목을선택하였다. 키보드포커스를얻었다. 스타일단순드랍드랍다운다운리스트 78 콤보박스컨트롤 콤보박스항목추가와삭제 콤보박스컨트롤 입력가능한문자열의길이제한하기 m_combo.addstring(" 사과 "); m_combo.deletestring(3); 선택된항목얻기 int nindex = m_combo.getcursel(); if(nindex!= CB_ERR) CString str; m_combo.getlbtext(nindex, str); m_combo.limittext(10); 각종편집작업 m_combo.clear(); m_combo.cut(); m_combo.copy(); m_combo.paste(); 79 80

21 스크롤바컨트롤 화면의일정영역을스크롤하거나정해진범위의값을변경시키는용도로사용 스크롤바코드 스크롤바컨트롤 WM_HSCROLL/WM_VSCROLL 메시지핸들러 void OnHScroll (UINT nsbcode, UINT npos, CScrollBar* pscrollbar); void OnVScroll (UINT nsbcode, UINT npos, CScrollBar* pscrollbar); nsbcode npos 스크롤바코드 스크롤박스의위치 스크롤바코드가 SB_THUMBPOSITION 또는 SB_THUMBTRACK인경우에만사용 pscrollbar 스크롤바컨트롤을가리키는포인터 스크롤바컨트롤 스크롤바컨트롤예제작성 주요함수멤버함수 SetScrollRange() SetScrollPos() GetScrollPos() 역할 스크롤박스위치값의최소값과최대값을설정한다. 스크롤박스의현재위치를설정한다. 스크롤박스의현재위치를얻는다. 스크롤바컨트롤을사용하여 OnDraw 의 MFC 글씨의회전각도와색을변경하는예제 1~6 단계옵션설정 단계 변경사항 1 'Single document' 를선택한다. 2 Compound Document Support 변경사항없음 3 DB 변경사항없음 4 UI 변경사항없음 5 Advanced Features 'ActiveX Controls' 선택을해제함 6 Generated Classes 에서뷰클래스의베이스클래스로 CFormView 를선택함 83 84

22 스크롤바컨트롤예제작성 스크롤바컨트롤예제작성 Resource View 에서 IDD_EXSCROLLBAR_FORM 대화상자를디자인한다 m_scrollbar1 m_scrollbar2 m_scrollbar3 m_scrollbar4 85 void CExScrollBarView::OnInitialUpdate() CFormView::OnInitialUpdate(); GetParentFrame()->RecalcLayout(); ResizeParentToFit(); // 스크롤바의범위와박스위치설정 m_scrollbar1.setscrollrange(0, 360, FALSE); m_scrollbar1.setscrollpos(0); m_scrollbar2.setscrollrange(0, 255, FALSE); m_scrollbar2.setscrollpos(0); m_scrollbar3.setscrollrange(0, 255, FALSE); m_scrollbar3.setscrollpos(0); m_scrollbar4.setscrollrange(0, 255, FALSE); m_scrollbar4.setscrollpos(0); 86 void CExScrollBarView::OnDraw(CDC* pdc) LOGFONT lf; ::ZeroMemory(&lf, sizeof(lf)); // 폰트구조체초기화 lf.lfheight = 300; lf.lfescapement = 10 * m_scrollbar1.getscrollpos(); // 회전각설정 lf.lforientation = 10 * m_scrollbar1.getscrollpos(); // 회전각설정 ::lstrcpy(lf.lffacename, "Arial"); CFont font; font.createpointfontindirect(&lf); // 지정된폰트생성 pdc->selectobject(&font); // 스크롤바로선택된값으로텍스트색상설정 pdc->settextcolor(rgb(m_scrollbar2.getscrollpos(), m_scrollbar3.getscrollpos(), m_scrollbar4.getscrollpos())); pdc->textout(200, 220, "MFC"); 87 void CExScrollBarView::OnHScroll(UINT nsbcode, UINT npos, CScrollBar* pscrollbar) int nscrollpos=0; if(pscrollbar->getsafehwnd() == m_scrollbar1.getsafehwnd()) switch(nsbcode) case SB_LINELEFT: // 스크롤바코드가왼쪽화살표 nscrollpos = pscrollbar->getscrollpos(); if(nscrollpos > 0) pscrollbar->setscrollpos(--nscrollpos); SetDlgItemInt(IDC_EDIT1, nscrollpos); Invalidate(); break; case SB_LINERIGHT: // 스크롤바코드가오른쪽화살표 nscrollpos = pscrollbar->getscrollpos(); if(nscrollpos < pscrollbar->getscrolllimit()) pscrollbar->setscrollpos(++nscrollpos); SetDlgItemInt(IDC_EDIT1, nscrollpos); Invalidate(); break; case SB_THUMBTRACK: pscrollbar->setscrollpos(npos); SetDlgItemInt(IDC_EDIT1, npos); Invalidate(); break; // 스크롤바코드가스크롤박스 88

23 else if(pscrollbar->getsafehwnd() == m_scrollbar2.getsafehwnd()) switch(nsbcode) case SB_THUMBTRACK: pscrollbar->setscrollpos(npos); SetDlgItemInt(IDC_EDIT2, npos); Invalidate(); break; else if(pscrollbar->getsafehwnd() == m_scrollbar3.getsafehwnd()) switch(nsbcode) case SB_THUMBTRACK: pscrollbar->setscrollpos(npos); SetDlgItemInt(IDC_EDIT3, npos); Invalidate(); break; else if(pscrollbar->getsafehwnd() == m_scrollbar4.getsafehwnd()) switch(nsbcode) case SB_THUMBTRACK: pscrollbar->setscrollpos(npos); SetDlgItemInt(IDC_EDIT4, npos); Invalidate(); break; CFormView::OnHScroll(nSBCode, npos, pscrollbar); 89 스크롤바컨트롤예제작성 실행결과 90 고급컨트롤기법 서브클래싱 서브클래싱 기존의윈도우나컨트롤의형태또는동작변경 메시지반사 스스로통지메시지를처리하는독립적인컨트롤클래스제작가능 서브클래싱 윈도우 ( 정확하게는윈도우프로시저 ) 로가는메시지를중간에서붙잡아처리하는기법 메시지종류에따라, 처리한후원래의윈도우프로시저에게전달해주거나전달하지않을수있음 메시지 중간에서처리 윈도우프로시저 91 92

24 서브클래싱 메시지반사 서브클래싱구현순서 1. 기존의클래스를기반으로새로운윈도우나컨트롤클래스를생성 2. 메시지핸들러를재정의하거나새로운메시지핸들러를추가하여정의 3. CWnd::SubclassWindow() 또는 CWnd::SubclassDlgItem() 함수를호출 메시지반사 부모윈도우가처리하지않는통지메시지를컨트롤자신이처리통지메시지 컨트롤 ( 자식윈도우 ) 부모윈도우 부모윈도우가통지메시지를처리하지않을경우에만컨트롤이자신의통지메시지를처리가능 메시지반사 메시지반사구현 기존의컨트롤클래스로부터새로운클래스를만들고자신의통지메시지를처리하도록함수를추가 새로만든클래스를이용하여컨트롤생성 95

<4D F736F F F696E74202D203038C0E520C7A5C1D820C4C1C6AEB7D1205BC8A3C8AF20B8F0B5E55D>

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

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

윈도우즈 프로그래밍

윈도우즈 프로그래밍 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

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

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

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 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

04장 메시지 처리 유형

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

More information

Microsoft Word - hci08-final-answer.doc

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

More information

윈도우시스템프로그래밍

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

More information

PowerPoint Template

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

More information

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

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

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

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

<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

윈도우 프로그래밍의 개념

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

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

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

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

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

5장 MFC기반 다지기

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

More information

윈도우 프로그래밍의 개념

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

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

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

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

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

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

윈도우 프로그래밍의 개념

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

More information

Microsoft Word - hci07-final-answer.doc

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

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

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

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

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

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

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

歯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

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

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

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

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

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

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

윈도우시스템프로그래밍

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

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

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

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

쉽게 풀어쓴 C 프로그래밍

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

More information

Programming hwp

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

More information

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

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

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

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

4장기본프로그래밍2

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

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

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

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

More information

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

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

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

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>

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

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

그래픽 프로그래밍

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

More information

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

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

More information

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

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

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

UI TASK & KEY EVENT

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

More information

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

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

More information

Javascript

Javascript 1. 이벤트와이벤트핸들러의이해 이벤트 (Event) 는웹브라우저에서발생하는다양한사건을말합니다. 예를들면, 버튼을마우스로을했다거나브라우저를닫았다거나 Enter 키를눌렀다거나등등아주다양한사건들이있습니다. 그렇다면이벤트핸들러 (Event Handler) 는무엇일까요? 이다양한이벤트들을핸들링 ( 처리 ) 해주는것입니다. 예를들면, 어떤버튼을했을때메시지창이뜨게하는등을말합니다.

More information

쉽게 풀어쓴 C 프로그래밍

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

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

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

윈도우시스템프로그래밍

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

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

Programming hwp

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

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

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

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

Microsoft PowerPoint - CPP_chap3

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

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

Comtrol ID 레이블 Hotkey Callback 함수 ⑴ Button, IDC_BTN_DEPT, &Department, OnBtnDepartment ⑵ Button, IDC_BTN_EMP, &Employee, OnBtnEmployee ⑶ Button, IDC_B

Comtrol ID 레이블 Hotkey Callback 함수 ⑴ Button, IDC_BTN_DEPT, &Department, OnBtnDepartment ⑵ Button, IDC_BTN_EMP, &Employee, OnBtnEmployee ⑶ Button, IDC_B adb.open(dsn) ;; DB 연결 (CompanyAccDB) adb.open(null, false, false, strdsn) ;; DB 연결 (DSN=CompanyAccDB) adb.executesql(strsql) ;; 결과가없는연산자 (Ins/Del/Upd) adb.close() ;; DB 연결끊음 CRecordset aqryset(&adb) ;;

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

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

슬라이드 1

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

More information

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

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

More information

어댑터뷰

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

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

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

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

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

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

More information

비주얼프로그래밍 (Visual Basic .NET)

비주얼프로그래밍 (Visual Basic .NET) 비주얼프로그래밍 (Visual Basic.NET) 2016-09-05 (02 주차 ) 홍명덕 Artificial Intelligence Lab. http://ailab.inha.ac.kr 1 장 ~ 5 장범위요약 2 VB.NET 다운로드 https://www.visualstudio.com/ 3 4 개발환경 5 VB.NET 단축키 VB.NET 기본개념 (1)

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

2009년 상반기 사업계획

2009년 상반기 사업계획 기본컨트롤 (2) 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/25 Contents 학습목표 윈도우의구성요소를시각화한표준컨트롤중리스트박스, 콤보박스, 스크롤바등을이해한다. 내용 ListBox와 ComboBox 컨트롤의속성과활용 Shape 컨트롤의이해 HScroll/VScroll 컨트롤의활용 3/25 ListBox 컨트롤 ListBox( 리스트박스

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

DLL(Dynamic Linked Library)

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

More information

Microsoft PowerPoint - C++ 5 .pptx

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

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

Programming hwp

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

More information

gnu-lee-oop-kor-lec10-1-chap10

gnu-lee-oop-kor-lec10-1-chap10 어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class

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

슬라이드 1

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

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

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

Visual Basic Visual Basic 소개

Visual Basic Visual Basic 소개 1. Visual Basic 소개 학습목표 MS 비주얼베이직 6.0과 2010의차이 비주얼베이직 2010 express 설치 비주얼베이직 2010의통합개발환경 프로그램의시작과실행 2 1. 소개 1.1 MS 비주얼베이직 6.0과 2010의차이 1.2 비주얼베이직 2010 express 설치 1.3 비주얼베이직 2010의통합개발환경 1.4 프로그램의시작과실행 3

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

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