08장 윈도우에서의 그리기
|
|
- 가영 유
- 6 years ago
- Views:
Transcription
1 8 장 윈도우에서의그리기 김성영교수 금오공과대학교 컴퓨터공학부
2 그래픽장치인터페이스객체 GDI 객체 객체의핸들타입 MFC 클래스속성 HPEN CPen 선속성 HBRUSH CBrush 채우기속성 HFONT CFont 글꼴속성 HBITMAP CBitmap 비트맵영상속성 HPALETTE CPalette 팔레트속성 HRGN CRgn 영역속성 GDI 클래스는 CGdiObject 클래스로부터상속 GDI 객체의핸들을할당할수있는멤버변수를가짐 class CGdiObject : public CObject { HANDLE m_hobject; // GDI 객체에대한핸들 } 2
3 윈도우가 GDI 객체를만들어각객체의속성에기본값설정 선을그리는경우 시작점과끝점만제공하면선을그릴수있음 MoveTo( int x, int y ) // 지정한위치로이동 LineTo( int x, int y ) // 현재위치에서지정된위치까지선을그음 사각형을그리는경우 Rectangle( int x1, int y1, int x2, int y2 ) // 각진사각형 RoundRect( int x1, int y1, int x2, int y2, int x3, int y3 ) // 모서리가둥근사각형 3
4 CDC 클래스 - 디바이스컨텍스트 (Device Context, DC) 구조체 - HDC 는 DC 를가리키는핸들 4
5 class CDC : public CObject { HDC m_hdc; // DC에대한핸들 BOOL LineTo( int x, int y ); BOOL Rectangle( int x1, int y1, int x2, int y2 ); } 멤버변수 : HDC 멤버함수 : Rectangle() 등의그리기함수 CDC 클래스를이용한그리기 GDI 객체를가리키고있는 DC 를준비 CDC* pdc; pdc = GetDC(); // DC 요청 pdc->rectangle(0, 0, 100, 100); // 그리기관련함수 (GetDC와 ReleaseDC 사이 ) ReleaseDC(pDC); // DC 반환 CDC: 5
6 그리기의전형적인형태 기본으로설정된속성값을바꾸고자할때기존에생성된객체의속성을바꾸는대신새로운객체생성 검은색선을회색으로바꾸려면.. 1 회색속성을가진펜객체생성 2 DC 는검은색펜객체를가리키던연결선을끊음 3 DC 는새로생성한회색펜객체를연결 6
7 SelectObject() 함수 - 2, 3 과정처리 - GDI 객체별로존재 - 기존 GDI 객체의주소값반환 CPen* SelectObject( CPen* ppen ); CBrush* SelectObject( CBrush* pbrush ); CFont* SelectObject( CFont* pfont ); CBitmap* SelectObject( CBitmap* pbitmap ); int SelectObject( CRgn* prgn ); 윈도우가생성해놓은 DC 값이바뀔수도있으므로 GetDC() 함수에의해할당된 DC 는독점적으로사용 사용이끝나면 ReleaseDC() 함수로사용하지않음을알림 7
8 출력작업이끝나면 DC 를이전상태로되돌림 - SelectObject() 함수를다시호출하여이전 GDI 객체복원 새로생성하여사용한객체는메모리에서제거 CDC* pdc; pdc = GetDC(); CPen* oldpen, pen; pen.createpen( PS_SOLID, 1, RGB(128,128,128) ); oldpen = pdc->selectobject( &pen ); pdc->rectangle( 0, 0, 100, 100 ); pdc->selectobject( oldpen ); pen.deleteobject( ); ReleaseDC( pdc ); // 회색펜생성 // 새로생성한회색펜선택 // 회색테두리를가진사각형그림 // 이전검은펜복구 // 생성한펜을제거 8
9 CClientDC 클래스를사용하여위코드를아래와같이대체가능 - 생성자에서 GetDC(), 소멸자에서 ReleaseDC() 호출 - 단, CClientDC 클래스는클라이언트영역만담당 CClientDC dc( this ); pen.createpen( PS_SOLID, 1, RGB(128,128,128) ); oldpen = dc. SelectObject( &pen ); dc.rectangle( 0, 0, 100, 100 ); dc.selectobject( oldpen ); pen.deleteobject( ); 9
10 실습 8.1 마우스클릭위치를중심으로스타일을갖는사각형을그려보자. 마우스클릭처리는 CMyView 클래스의 WM_LBUTTONDWN 메시지핸들러에서처리 10
11 화면출력준비 / 사각형그리기는 Rectangle() 함수이용 void CMyView::OnLButtonDown( UINT nflags, CPoint point ) { CDC* pdc; pdc = GetDC( ); // DC 준비 MyView.cpp CRect rt; rt.left = point.x - 50; rt.top = point.y - 50; rt.right = point.x + 50; rt.bottom = point.y + 50; pdc->rectangle( rt ); // 사각형그림 ReleaseDC(pDC); // DC 반환 } CView::OnLButtonDown( nflags, point ); 11
12 브러쉬객체생성은 CreateSolidBrush() 함수사용 MyView.cpp void CMyView::OnLButtonDown( UINT nflags, CPoint point ) { CPen pen, *oldpen; // 펜객체선언 pen.createpen( PS_SOLID, 5, RGB(0,0,255) ); // 파란펜생성 oldpen = pdc->selectobject( &pen ); // 파란펜선택 & 이전펜저장 CBrush br, *oldbr; // 브러시객체선언 br.createsolidbrush( RGB(255,0,0) ); // 빨간브러쉬생성 oldbr = pdc->selectobject( &br ); // 빨간브러쉬선택 & 이전브러쉬저장 pdc->rectangle(rt); } pdc->selectobject(oldpen); // 이전펜으로복귀 pdc->selectobject(oldbr); // 이전브러쉬로복귀 pen.deleteobject(); // 펜객체제거 br.deleteobject(); // 브러쉬객체제거 12
13 참고 자주사용하는 GDI 객체는미리생성하고상수형태로제공 BLACK_BRUSH, DKGRAY_BRUSH, GRAY_BRUSH LTGRAY_BRUSH, NULL_BRUSH, WHITE_BRUSH BLACK_PEN, NULL_PEN, WHITE_PEN virtual CGdiObject* SelectStockObject( int nindex ); 13
14 WM_PAINT 메시지 실습 8.2 [ 실습 8.1] 에이어서윈도우가다른윈도우에가려졌다가다시나타났을때사각형이지워지지않도록해보자. WM_LBUTTONDOWN 메시지핸들러코드를 OnDraw() 함수로이동 DC 는 OnDraw() 함수의인자에포함된것을사용 출력위치는 WM_LBUTTONDOWN 메시지핸들러의인자로넘어온좌표를 OnDraw() 에서사용 멤버변수로선언 14
15 class CMyView : public CView { private: CPoint m_point; // 마우스클릭위치저장 } CMyView::CMyView( ) { m_point = CPoint( -100, -100 ); // 화면에서보이지않도록초기화 } void CMyView::OnDraw( CDC* pdc ) { CMyDoc* pdoc = GetDocument( ); ASSERT_VALID( pdoc ); MyView.h MyView.cpp CRect rt; rt.left = m_point.x - 50; rt.top = m_point.y - 50; rt.right = m_point.x + 50; rt.bottom = m_point.y + 50; 15
16 CPen pen, *oldpen; pen.createpen( PS_SOLID, 5, RGB(0,0,255) ); oldpen = pdc->selectobject( &pen ); CBrush br, *oldbr; br.createsolidbrush( RGB(255,0,0) ); oldbr = pdc->selectobject( &br ); pdc->rectangle( rt ); pdc->selectobject( oldpen ); pdc->selectobject(o ldbr ); pen.deleteobject(); br.deleteobject(); } void CMyView::OnLButtonDown( UINT nflags, CPoint point ) { m_point = point; // 현재마우스위치저장 CView::OnLButtonDown( nflags, point ); } 16
17 프로그램실행후왼쪽버튼을눌러도반응없음 명시적으로 WM_PAINT 메시지를발생시키는 UpdateWindow() 함수호출 void CMyView::OnLButtonDown( UINT nflags, CPoint point ) { m_point = point; // 현재마우스위치저장 UpdateWindow( ); // 명시적으로 WM_PAINT 메시지발생 CView::OnLButtonDown( nflags, point ); } MyView.cpp 17
18 이전에그려졌던것과비교해서무효한영역이있을때만새로그림 무효화영역을임의로만들기위해서는 CWnd 클래스의 Invalidate() 또는 InvalidateRect() 함수를사용 void Invalidate( BOOL berase = TRUE ); void InvalidateRect( LPCRECT lprect, BOOL berase = TRUE ); MyView.cpp void CMyView::OnLButtonDown( UINT nflags, CPoint point ) { m_point = point; // 현재마우스위치저장 Invalidate(); // 윈도우영역을무효화시킴 UpdateWindow( ); // 명시적으로 WM_PAINT 메시지발생 ( 생략가능 ) CView::OnLButtonDown( nflags, point ); } 18
19 참고 클릭한모든마우스좌표에대한사각형을다시그리고자한다면? 집합클래스 (Collection Class) 사용 : 배열 (array), 리스트 (list), 맵 (map) CArray CByteArray CArray<CPoint, CPoint&> array; CByteArray array; CArray<CPoint, CPoint&> array; array.setsize( 5 ); for( int i=0; i<5; i++ ) { CPoint pt( i, i*5 ); array[i] = pt; } 19
20 비트맵 비트맵객체는픽셀단위로표현된영상을다룸 리소스편집기를이용해비트맵을생성및출력 실습 8.3 마우스클릭위치에문자열을출력하는프로그램을작성하자. 단, 출력할문자열은리소스로등록한것을사용하고도큐먼트 - 뷰구조에충실하게작성한다. 20
21 도큐먼트 - 뷰구조에따른코딩 리소스편집기에서문자열리소스추가 - 리소스뷰탭에서 String Table 을선택 - 문자열테이블의마지막빈칸을클릭 21
22 속성창 - 문자열의아이디 IDS_MYSTRING 입력 - Caption 리소스편집기문자열입니다 입력 22
23 도큐먼트 - 뷰구조 - 도큐먼트 데이터처리 - 뷰 출력담당 도큐먼트클래스에리소스에있는문자열을저장하기위한변수선언 class CMyDoc : public CDocument { public: CString m_strmsg; } MyView.h 리소스의문자열을읽어오는함수 CString::LoadString( UINT nid ); 23
24 도큐먼트 데이터처리 사용할초기데이터의로딩은도큐먼트가초기화될때하는것이적절 CMyDoc::OnNewDocument( ) 함수에서처리 BOOL CMyDoc::OnNewDocument( ) { if (!CDocument::OnNewDocument() ) return FALSE; MyDoc.cpp // TODO: add reinitialization code here // (SDI documents will reuse this document) m_strmsg.loadstring( IDS_MYSTRING ); // 리소스에서문자열을읽어옴 } return TRUE; 24
25 뷰 - 출력 마우스왼쪽버튼을누르면출력되도록 WM_LBUTTONDOWN 메시지핸들러에코드추가 GetDocument() 도큐먼트객체주소획득 void CMyView::OnLButtonDown( UINT nflags, CPoint point ) { CString strmsg; CMyDoc* pdoc; pdoc = GetDocument( ); strmsg = pdoc->m_strmsg; MyView.cpp CClientDC dc( this ); dc.textout( point.x, point.y, strmsg, strmsg.getlength() ); } CView::OnLButtonDown( nflags, point ); 25
26 실습 8.4 마우스클릭위치에다음그림과같은영상을출력해보자. 26
27 비트맵리소스편집 비트맵도문자열과같이하나의리소스 리소스편집기사용 리소스추가대화상자 - 리소스뷰탭의 My.rc 에서마우스오른쪽버튼을눌러컨텍스트메뉴를활성화 - 리소스추가 (Insert..) 항목클릭 27
28 비트맵을선택하고 New 버튼클릭 비트맵편집창 편집내용은 IDB_BITMAP1 로설정 28
29 비트맵클래스를통해비트맵리소스를읽어옴 BOOL LoadBitmap( UINT nidresource ) 비트맵영상은화면에보이지않게일반메모리에먼저옮겨진후, 화면메모리로한꺼번에복사하여빠르게출력 메모리로비트맵을선택하는방법은메모리 DC 이용 CBitmap bmp; bmp.loadbitmap( IDB_BITMAP1 ); CDC* pdc; // 화면 DC pdc = GetDC( ); CDC memdc; // 메모리 DC memdc.createcompatibledc( pdc ); // 화면 DC 와호환이되도록생성 memdc.selectobject( &bmp ); 29
30 메모리 DC 의형식은화면 DC 와호환되도록 CreateCompatibleDC() 함수를이용해생성 비트맵관련정보 BITMAP 구조체에저장 typedef struct tagbitmap { LONG bmtype; //0으로설정 LONG bmwidth; // 비트맵의픽셀단위가로크기 LONG bmheight // 비트맵의픽셀단위세로크기 LONG bmwidthbytes; // 비트맵의바이트단위가로크기 ( 짝수 ) WORD bmplanes; // 컬러판의수 WORD bmbitspixel; // 필셀당할당된비트수 LPVOID bmbits; // 영상이저장된시작주소 } BITMAP; 30
31 BITMAP 정보는비트맵클래스의 GetObject() 함수를통해얻어올수있다 CBitmap bmp; bmp.loadbitmap( IDB_BITMAP1 ); BITMAP bm; bmp.getobject( sizeof(bm), &bm ); // 비트맵영상정보얻기 int width, height; width = bm.bmwidth; height = bm.bmheight; 31
32 메모리 DC 의내용을화면 DC 로복사 BitBlt() void CMyView::OnLButtonDown(UINT nflags, CPoint point) { CBitmap bmp; bmp.loadbitmap( IDB_BITMAP1 ); MyView.cpp CDC* pdc; CDC memdc; pdc = GetDC( ); memdc.createcompatibledc( pdc ); // 복사를위해화면 DC 와호환되도록생성 memdc.selectobject( &bmp );// 메모리에그림 BITMAP bm; bmp.getobject( sizeof(bm), &bm ); // 비트맵관련정보획득 32
33 pdc->bitblt( point.x, // 출력가로위치 point.y, // 출력세로위치 bm.bmwidth, // 비트맵가로크기 bm.bmheight, // 비트맵세로크기 &memdc, // 원본 ( 메모리 ) DC의주소 0, // 복사시작할비트맵의가로좌표 0, // 복사시작할비트맵의세로좌표 SRCCOPY // 원본을그대로복사 ); memdc.deletedc( ); // 메모리 DC 해제 ReleaseDC( pdc ); // 화면 DC 해제 } CView::OnLButtonDown(nFlags, point); 33
34 실습 8.5 비트맵을다시작성하지않고비트맵을확대해보자. 34
35 비트맵크기변경출력 비트맵크기변화는메모리 DC 의내용을화면 DC 로복사하는과정에서 CDC 클래스의 StretchBlt() 함수를통해조정가능 BOOL StretchBlt( int x, // 출력가로위치 int y, // 출력세로위치 int nwidth, // 출력비트맵가로크기 int nheight, // 출력비트맵세로크기 CDC* psrcdc, // 원본 ( 메모리 ) DC의주소 int xsrc, // 복사시작할비트맵의가로좌표 int ysrc, // 복사시작할비트맵의세로좌표 int nsrcwidth, // 원본비트맵가로크기 int nsrcheight, // 원본비트맵세로크기 DWORD dwrop // 그리기모드 ); 35
36 메모리 DC 의내용을확대하여화면 DC 로복사 StretchBlt() void CMyView::OnLButtonDown(UINT nflags, CPoint point) { CBitmap bmp; bmp.loadbitmap( IDB_BITMAP1 ); MyView.cpp CDC* pdc; CDC memdc; pdc = GetDC( ); memdc.createcompatibledc( pdc ); // 복사를위해화면 DC 와호환되도록생성 memdc.selectobject( &bmp );// 메모리에그림 BITMAP bm; bmp.getobject( sizeof(bm), &bm ); // 비트맵관련정보획득 36
37 pdc->stretchblt( point.x, // 출력가로위치 point.y, // 출력세로위치 bm.bmwidth*3, // 출력비트맵가로크기 bm.bmheight*3, // 출력비트맵세로크기 &memdc, // 원본 ( 메모리 ) DC의주소 0, // 복사시작할비트맵의가로좌표 0, // 복사시작할비트맵의세로좌표 bm.bmwidth, // 원본비트맵가로크기 bm.bmheight, // 원본비트맵세로크기 SRCCOPY // 원본을그대로복사 ); memdc.deletedc( ); // 메모리 DC 해제 ReleaseDC( pdc ); // 화면 DC 해제 } CView::OnLButtonDown(nFlags, point); 37
38 화면맵핑모드 맵핑모드 논리단위 X출증가방향 Y축증가방향 MM_TEXT 픽셀 오른쪽 아래 MM_LOMETRIC 0.1 mm 오른쪽위 MM_HIMETRIC 0.01 mm 오른쪽위 MM_LOENGLISH 0.1 inch 오른쪽위 MM_HIENGLISH 0.01 inch 오른쪽위 MM_TWIPS 1 / 1440 inch 오른쪽위 WW_ISOTROPIC 지정가능선택가능선택가능 MM_ANISOTROPIC 지정가능선택가능선택가능 MM_TEXT: 기본설정모드 화면좌측상단이 (0,0) 이고오른쪽으로갈수록 x 축값이증가하고아래로갈수록 y 축값이증가 MM_LOMETIC ~ MM_TWIPS 물리장치의종류에관계없이물리적길이가항상일정하도록설계 MM_ISOTROPIC, MM_ANISOTROPIC 프로그래밍가능한매핑모드 38
39 MM_ANISOTROPIC 을사용한방법 1 CRect rect; GetClientRect( &rect ); CDC* pdc; pdc = GetDC( ); pdc->setmapmode( MM_ANISOTROPIC ); // 맵핑모드설정 // 논리단위설정 pdc->setwindowext( 300, 300 ); // 물리단위설정 pdc->setviewportext( rect.width(), rect.height() ); pdc->ellipse( 0, 0, 300, 300 ); pdc->rectangle( 50, 50, 250, 250 ); ReleaseDC( pdc ); 39
40 MM_ANISOTROPIC 을사용한방법 2 CDC* pdc; pdc = GetDC( ); pdc->setmapmode( MM_ANISOTROPIC ); // 맵핑모드설정 // 디스플레이크기의 1/3 크기로논리단위설정 pdc->setwindowext( xdisplay/3, ydisplay/3 ); // 디스플레이크기그대로물리단위설정 pdc->setviewportext( xdisplay, ydisplay ); SetMapMode() 맵핑모드설정 xdisplay 및 ydisplay 디스플레이해상도 SetWindowExt() 화면출력단위가되는논리단위설정 SetViewPortExt() 물리단위화면크기설정 40
41 디스플레이해상도를얻는방법 xdisplay = pdc->getdevicecaps( HORZRES ); ydisplay = pdc->getdevicecaps( VERTRES ); // 픽셀단위의가로크기 // 픽셀단위의세로크기 마우스를클릭했을때인자로넘어오는마우스좌표는물리단위인픽셀단위 물리단위를논리단위로변환하는 DPtoLP( ) 함수를사용해해결 (CDC 클래스의멤버함수 ) void DPtoLP(LPPOINT lppoints, int ncount = 1) const; // 변환할점이여러개인경우 void DPtoLP(LPRECT lprect) const; // RECT 좌표변환 void DPtoLP(LPSIZE lpsize) const; // SIZE 좌표변환 void LPtoDP(LPPOINT lppoints, int ncount = 1) const; void LPtoDP(LPRECT lprect) const; void LPtoDP(LPSIZE lpsize) const; 41
42 SetViewPortOrg(), SetWindowOrg() 함수를이용하면좌표계의원점과축증가방향변경가능 MM_TEXT 모드에서다음코드는아래와같이화면의중심이원점이되도록변경 pdc->setviewportorg( xdisplay/2, ydisplay/2 ); 물리적인원점및논리적인원점 : 화면중심 42
43 논리적인원점설정을추가하여중앙으로변경된물리적인원점이화면의 -1/2 : 논리적인원점이오른쪽하단 pdc->setviewportorg( xdisplay/2, ydisplay/2 ); pdc->setwindoworg( -xdisplay/2, -ydisplay/2 ); -y -x 43
MFC 프로그래밍
윈도우프로그래밍 Visual C++ 2010 MFC Programming 4 장. 화면출력 GDI 와 DC GDI(Graphics Device Interface) 윈도우운영체제에서그래픽출력을담당하는부분 장치독립성및멀티태스킹지원 운영체제의하위시스템중하나로 DLL 로존재 응용프로그램의요청을받아서실제출력장치에대한출력을담당 O/S 응용프로그램 GDI 장치출력장치드라이버
More information슬라이드 1
13장직렬화 김성영교수 금오공과대학교 컴퓨터공학부 도큐먼트 / 뷰구조 (1) 도큐먼트와뷰 디스크에저장된파일데이터를읽는경우 도큐먼트객체 뷰객체 파일 사용자 읽기 화면표시 2 도큐먼트 / 뷰구조 (2) 도큐먼트와뷰 사용자가데이터를입력하는경우 도큐먼트객체 뷰객체 파일 사용자 저장 입력 3 도큐먼트 / 뷰구조 (3) 도큐먼트와뷰 입력된데이터를디스크파일에저장하는경우
More informationChapter 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 informationMicrosoft PowerPoint - 09-CE-7-선과 도형
순천향대학교컴퓨터학부이상정 1 학습내용 디바이스컨텍스트 WM_PAINT 선, 도형그리기 GDI 객체 펜, 브러쉬 순천향대학교컴퓨터학부이상정 2 디바이스컨텍스트 순천향대학교컴퓨터학부이상정 3 디바이스컨텍스트 (1) 윈도우즈에서화면출력 ( 텍스트출력과차이점 ) 화면을사용할수있는권한이제약 자신이차지하는영역에만그림을그릴수있다. 좌표를계산하는방법이다르다 자기의윈도우즈의좌표를기준으로출력
More informationMicrosoft PowerPoint - 11주차.pptx
11 주차 비트맵버튼 & 폰트 그래픽객체의사용 This week, we will study Button 에사용자 graphic image를넣는방법 Edit box의색상변경방법 폰트의종류변경, 폰트크기 / 속성변경방법 Graphic object 비트맵버튼의생성 버튼이미지를준비 사용할버튼의크기에적합한이미지를준비. 일반적으로.BMP 이미지파일을사용. Ex) Resource
More informationMicrosoft PowerPoint - hci2-lecture4.ppt
Overview 화면출력 HCI Programming 2 (321190) 2007년가을학기 10/4/2007 박경신 윈도우의화면출력원리이해 GDI (Graphic Device Interface) DC (Device Context) CDC 클래스를이용한화면출력기법 다양한 DC 클래스 GDI 그래픽함수 각종 GDI 객체를생성하고사용하는방법 GDI Object (CPen,
More information그래픽 프로그래밍
제 13 장그래픽프로그래밍 13.1 베지어곡선 실습 13-1 알고리즘을통한베지어곡선그리기 실습 13-2 컨트롤포인트이동및베지어곡선 해상도설정하기 그래픽프로그래밍 베지어곡선 베지어곡선알고리즘은곡선을생성하는대표적이고기본이되는알고리즘이다. MFC 에서의베지어곡선함수 BOOL PolyBezier(const POINT* lppoints, int ncount); lppoints
More information10 장세균전프로그래밍 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 informationMicrosoft PowerPoint - CPP_chap3
3 장. 마우스와키보드메시지 1 1. 능동적입력받기와수동적입력받기 2 학습목표 이벤트위주로직개념을파악한다 메시지개념을파악한다 능동적입력받기 절차적로직프로그램에서입력받기 언제무엇을입력받을지는프로그램의절차적로직에서결정 예 : 텍스트모드 C 프로그램에서문자열을입력받는경우 수동적입력받기 이벤트위주로직프로그램에서입력받기 윈도우환경에서마우스나키보드입력은 Windows
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현
More informationGDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widw
Chapter 5. 그래픽처리 Widws Prgrammig, 2009 Fall GDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widws Device
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 informationVisual 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쉽게 풀어쓴 C 프로그래밍
제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace
More informationPowerPoint 프레젠테이션
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디지털영상처리3
비트맵 BMP 파일의 실제 BMP 파일의 BMP 파일을 화면에 개요 이해 분석 출력 } 비트맵 (bitmap) 윈도우즈에서영상을표현하기위해사용되는윈도우즈 GDI(Graphic Device Interface) 오브젝트의하나 } 벡터그래픽 (vector graphics) 점, 선, 면등의기본적인그리기도구를이용하여그림을그리는방식 } 윈도우즈 GDI(Graphic
More information5장 MFC기반 다지기
5 장 MFC 기반다지기 김성영교수 금오공과대학교 컴퓨터공학부 들어가기 (1) pp.132 ~ 138 비주얼스튜디오에서 MFC 어플리케이션작성 참조 시스템메뉴 메뉴 최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 (Client Area) 스크롤바 상태표시줄 2 들어가기 (2) 3 들어가기 (3) 4 들어가기 (4) 솔루션탐색기확인 WinMain() 함수가없다?
More information1. 객체의생성과대입 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 informationPowerPoint 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 informationGDI의 개념
제 6 장그래픽객체의사용 6.1 GDI와 DC의개념 6.2 GDI 객체실습 6-1 직선과도형및비트맵그리기 6.3 GDI+ 의개념실습 6-2 사각형뷰포트에원그리기 GDI 의개념 Graphic Device Interface 윈도우가하드웨어를제어할수있도록응용프로그램에제공하는모든기능 응용프로그램과디바이스드라이버의중간역할 응용프로그램에대한장치독립적인그래픽동작수행 Device
More information쉽게 풀어쓴 C 프로그래밍
제 11 장상속 1. 상속의개념을이해한다. 2. 상속을이용하여자식클래스를작성할수있다. 3. 상속과접근지정자와의관계를이해한다. 4. 상속시생성자와소멸자가호출되는순서를이해한다. 이번장에서만들어볼프로그램 class Circle { int x, y; int radius;... class Rect { int x, y; int width, height;... 중복 상속의개요
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 informationProgramming hwp
4.3 그래픽프로그래밍 이절에서다룰예제응용프로그램은사각형이나타원을그리거나마우스이동위치를추적하여연결함으로써자유곡선을그리는등의그래픽작업을다루는프로그램이다. 어떤도형을그릴것인지는라디오버튼으로정한다. 타원을그릴때는매번타원모양, 테두리선의굵기와색상, 채우기패턴등을변경하는데, 이렇게변경된그래픽속성이다른도형을그릴때에도적용된다. 즉, 타원을그릴때는그래픽속성이매번변경되지만,
More informationuntitled
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 information12 강. 문자출력 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윈도우 프로그래밍의 개념
제 10 장다양한뷰클래스 10.1 도큐먼트 10.2 파일입출력 10.3 다양한뷰클래스 실습 10-1 Formview를이용한문자를출력하고파일입출력 10.4 분할윈도우 실습 10-2 정적분할윈도우를이용한학생정보프로그램 10.5 다중뷰 실습 10-3 다중뷰만들기 CDocument 클래스 데이터를관리하는클래스 OnNewDocument() 함수 새로운도큐먼트를만드는기능
More information[ 마이크로프로세서 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윈도우시스템프로그래밍
객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#1) 2013.09.27. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window
More informationMicrosoft 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<4D F736F F F696E74202D203032C0E520C0AFC6BFB8AEC6BC20C5ACB7A1BDBABFCD20C1FDC7D520C5ACB7A1BDBA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>
02 : 02 유틸리티클래스와집합클래스 학습목표 유틸리티클래스를이용하여객체생성법과사용법을익힌다. MFC 에서 C++ 의업캐스팅이적용되는원리를이해한다. 배열, 리스트, 맵클래스동작원리와사용법을익힌다. 콘솔응용프로그램 특징 메시지구동방식을사용하지않으므로 C/C++ 언어에대한지식만있으면곧바로실습이가능하다. 상당수의 MFC 클래스를사용할수있다. 유틸리티클래스, 집합클래스,
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More information4S 1차년도 평가 발표자료
객체지향프로그래밍응용 Chap 2. 프로그램의뼈대 2012.09.17. 오병우 컴퓨터공학과금오공과대학교 윈도우프로그램각부분의명칭 타이틀바 메뉴 프레임윈도우오브젝트 메뉴오브젝트 도구모음 툴바오브젝트 스크롤바 클라이언트영역 뷰오브젝트 상태표시줄 상태바오브젝트 Department of Computer Engineering 2 Win32 Application API
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationPowerPoint 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 information4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문
4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More informationJAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
More information슬라이드 1
BMP 파일구조 김성영교수 금오공과대학교 컴퓨터공학부 학습목표 BMP 파일의구조및그특징을설명할수있다. 파일헤더및비트맵정보헤더의주요필드를구분하고그역할을설명할수있다. C언어를사용하여 BMP 파일을처리할수있다. 2 BMP 파일구조 File Header (BITMAPFILEHEADER) Bitmap Info. Header (BITMAPINFOHEADER) Headers
More informationMicrosoft 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 informationMicrosoft 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(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 information1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1
5 장클래스의활용 클래스와배열객체포인터 this 포인터멤버함수오버로딩디폴트매개변수의사용 friend ( 전역함수, 클래스, 멤버함수 ) 내포클래스지역클래스 static 멤버 const 멤버와 const 객체 explicit 생성자 C++ 프로그래밍입문 1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int
More information<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>
06: 사용자인터페이스 학습목표 메뉴명령을처리하고메뉴항목을적절하게갱신하는기법을익 힌다. 컨텍스트메뉴와시스템메뉴를다루는방법을익힌다. 툴바를생성하고사용하는방법을익힌다. 상태바를생성하고사용하는방법을익힌다. 메뉴용어 (1/6) 최상위메뉴 = 메뉴바 최상위메뉴 = 메뉴바 1 메뉴용어 (2/6) 메뉴항목 용어 의미 1 명령항목명령 (Command) 을수행하는메뉴항목.
More information1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할
15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p
More informationgnu-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<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>
게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information디지털영상처리3
비트맵개요 BMP 파일의이해실제 BMP 파일의분석 BMP 파일을화면에출력 } 비트맵 (bitmap) 윈도우즈에서영상을표현하기위해사용되는윈도우즈 GDI(Graphic Device Interface) 오브젝트의하나 } 벡터그래픽 (vector graphics) 점, 선, 면등의기본적인그리기도구를이용하여그림을그리는방식 } 윈도우즈 GDI(Graphic Device
More information<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>
제목 : 미디어정보처리프로그래밍실습모음 일시 : 2002. 6. 15 작성자 : 성용철학번 : 한남대학교정보통신멀티미디어공학부 ( 전자정보통신전공 ) 미디어정보처리프로그래밍실습숙제설명 1.256 X 256 grayscale 의디스플레이프로그램 Resource View 의 menu item 에서 Display 밑에 Raw gray 라마든다음에그림과같이 ID 와
More information<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 informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More information歯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 information1장 윈도우 프로그래밍 들어가기
1 장 윈도우프로그래밍들어가기 김성영교수 금오공과대학교 컴퓨터공학부 예제 다음프로그램은언제종료할까? #include #define QUIT -1 int Func(void) int i; cout > i; return i; void main(void) int Sum = 0, i; cout
More informationC++ Programming
C++ Programming 상속과다형성 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 상속의이해 상속과다형성 다중상속 2 상속과다형성 객체의이해 상속클래스의객체의생성및소멸 상속의조건 상속과다형성 다중상속 3 상속의이해 상속 (Inheritance) 클래스에구현된모든특성 ( 멤버변수와멤버함수 )
More informationMicrosoft 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 informationMicrosoft PowerPoint - 04windows.ppt
Game Programming I Windows 프로그래밍 (1) March 27, 2006 목표 윈도우프로그래밍에서이용되는이벤트구동프로그래밍모델의이해 Direct3D 를이용하는윈도우어플리케이션의작성을위한최소한의코드이해 윈도우 (Win32) 어플리케이션 Direct3D API ( 어플리케이션프로그래밍인터페이스 ) 를이용하기위해필요 Win32 API 를이용해작성
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - chap11-포인터의활용.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 informationProgramming hwp
6 장 MDI 응용프로그램 MDI 응용프로그램의형태 응용프로그램마법사 (AppWizard) 가생성하는 MDI 응용프로그램의주실행창을나타내는객체는 CFrameWnd에서파생된클래스인스턴스이며, 기본외형은아래그림과같이메뉴와툴바를포함한다. 문서내용을보여주는뷰들은이창의클라이언트영역안에자식창으로만들어지는윈도우들을통해표시된다. 주실행창의클라이언트영역안에는여러개의자식창이만들어질수있으며,
More informationchap 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 informationMicrosoft PowerPoint - hci2-lecture7.ppt
Overview 파일입출력 CFile 클래스를이용한파일입출력기법 도큐먼트 / 뷰구조이해 CArchive 클래스를이용한직렬화기법 HCI Programming 2 (321190) 2007 년가을학기 11/5/2007 박경신 2 파일입출력방법 일반파일입출력 CFile ( 파생 ) 클래스 Read(), Write() 등의함수이용 직렬화 (serialization)
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More informationMicrosoft PowerPoint _대화상자.ppt
7 장. 대화상자 모달대화상자 (modal dialog box) DDX (Dialog Data Exchange) 모델리스대화상자 (modeless dialog box) 공통대화상자의사용 Paint3.dsw 순천향대학교정보기술공학부이상정 1 모달대화상자 (modal dialog box) 순천향대학교정보기술공학부이상정 2 대화상자의종류 모달대화상자 (modal
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More informationPowerPoint 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 informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More informationMicrosoft 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<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>
객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보
More informationMicrosoft PowerPoint - 09-CE-5-윈도우 핸들
순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트 윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More information윈도우즈 프로그래밍
윈도우프로그래밍및실습 003. 출력 DB & MINING LAB. Korea University 2 nd updated 2012. 08. 18 Last updated 2015. 08. 26 이종욱 eastwest9@korea.ac.kr 1 Purpose of this chapter How to show some information on your screen
More information<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>
2010 학년도동계 계절수업시험문제지 출제위원 방송대김강현 학과명학번 - 성 명 감독관확인 ( 인 ) 교과목명 교과목코드 윈도우프로그래밍 3 7 출제범위 교재전체 ( 해당강의포함 ) 문항수 50 문항 [50 문항 2 점 =100 점 ] 유의사항 1. OMR 답안지및문제지인적사항표기는반드시컴퓨터용사인펜으로할것 2. 표기한답안은정정이일절불가하니답안표기에각별히유의할것
More informationMicrosoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt
포인터 1 포인터란? 포인터 메모리의주소를가지고있는변수 메모리주소 100번지 101번지 102번지 103번지 int theage (4 byte) 변수의크기에따라 주로 byte 단위 주소연산자 : & 변수의주소를반환 메모리 2 #include list 8.1 int main() using namespace std; unsigned short
More informationAPI - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어
메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -
More information안드로이드기본 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윈도우 프로그래밍의 개념
제 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윈도우 프로그래밍의 개념
제 7 장컨트롤과리소스 I 7.1 리스트컨트롤실습 7-1 대화상자에리스트컨트롤만들기 7.2 트리컨트롤실습 7-2 대화상자에트리컨트롤만들기 컨트롤및리소스 리스트컨트롤 (List Control) 트리컨트롤 (Tree Control) 탭컨트롤 (Tab Control) 슬라이드컨트롤 (Slider Control) 스핀컨트롤 (Spin Control) 프로그레스바컨트롤
More information1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,
8 장상속 상속의기본개념상속관련문제제기 base 클래스의접근제어와 protected 멤버상속관계에서의생성자와소멸자함수재정의 (function overriding) 디폴트액세스지정자와구조체 derived 클래스로부터의상속다중상속 virtual base 클래스 derived 클래스의디폴트복사생성자와디폴트대입연산자 private 생성자의사용 C++ 프로그래밍입문
More information(Microsoft PowerPoint - 11\300\345.ppt [\310\243\310\257 \270\360\265\345])
입출력 C++ 의효율적인입출력방법을배워보자. 이장에서다룰내용 1 cin 과 cout 을이용한입출력 2 입출력연산자중복 3 조작자생성 4 파일입출력 01_cin 과 cout 을이용한입출력 포맷입출력 C++ 의표준입출력은 cin, cout 을사용한다. C 의 printf 는함수이므로매번여러인자를입력해줘야하지만, cin/cout 에서는형식을한번만정의하면계속사용할수있다.
More informationFrama-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<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationadfasdfasfdasfasfadf
C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.
More informationWindows 8에서 BioStar 1 설치하기
/ 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More information어댑터뷰
04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결
More informationPowerPoint 프레젠테이션
Win32 API Windows Programming 1 http://idb.korea.ac.kr DB & Mining LAB. Korea Univ. 최종업데이트 : 2012. 08. 14 1 컴퓨터시스템의주요구성요소 2 2 컴퓨터하드웨어구성 Fetch : 메인메모리에저장되어있는명령어를 CPU 로 Decode : 컨트롤유닛에의해분석 Execution : ALU
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More information; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i
; struct point p; printf("0이아닌점의좌표를입력하시오 : "); scanf("%d %d", &p.x, &p.y); if (p.x > 0 && p.y > 0) printf("1사분면에있다.\n"); if (p.x < 0 && p.y > 0) printf("2사분면에있다.\n"); if (p.x < 0 && p.y < 0) printf("3사분면에있다.\n");
More informationMicrosoft PowerPoint - Chap12-OOP.ppt
객체지향프로그래밍 (Object Oriented Programming) 12 장강사 강대기 차례 (Agenda) 멤버에대한동적메모리할당 암시적 / 명시적복사생성자 암시적 / 명시적오버로딩대입연산자 생성자에 new 사용하기 static 클래스멤버 객체에위치지정 new 사용하기 객체를지시하는포인터 StringBad 클래스 멤버에포인터사용 str static 멤버
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationUI 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 informationMicrosoft 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 informationConvenience 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 informationMicrosoft PowerPoint - hci2-lecture3.ppt
Overview MFC 프로그램구조 HCI Programming 2 (321190) 2008년가을학기 9/30/2008 박경신 MFC 개요 MFC 발전과정과주요특징이해 MFC 구조 MFC 구성요소, 클래스계층도, 주요클래스 MFC 최상위클래스인 CObject 가제공하는서비스이해 MFC 가제공하는전역함수사용법 MFC 응용프로그램구조 MFC Application
More informationMicrosoft PowerPoint - MFC-교재.ppt
MFC MFC 기초와구조 1 차례 MFC 란무엇인가 Application Framework MFC 계층구조 MFC 구조 The Application Framework CWinApp Class CFrameWnd Class Documents and Views 객체간의통신 MFC 프로그래밍 Messages and Commands [2] MFC(Microsoft Foundation
More information구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
More informationMicrosoft Word - hci07-final-answer.doc
기말고사 담당교수 : 단국대학교멀티미디어공학전공박경신 답은반드시답안지에기술할것. 공간이부족할경우반드시답안지몇쪽의뒤에있다고명기한후기술할것. 그외의경우의답안지뒤쪽이나연습지에기술한내용은답안으로인정안함. 답에는반드시네모를쳐서확실히표시할것. 답안지에학과, 학번, 이름외에본인의암호를기입하면성적공고시학번대신암호를사용할것임. 1. 다음문장의내용이맞으면 True, 틀리면 False를표시하시오.
More information