Microsoft PowerPoint - hci2-lecture4.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - hci2-lecture4.ppt"

Transcription

1 Overview 화면출력 HCI Programming 2 (321190) 2007년가을학기 10/4/2007 박경신 윈도우의화면출력원리이해 GDI (Graphic Device Interface) DC (Device Context) CDC 클래스를이용한화면출력기법 다양한 DC 클래스 GDI 그래픽함수 각종 GDI 객체를생성하고사용하는방법 GDI Object (CPen, CBrush, CFont, 등등 ) Stock GDI Object 2 GDI 와디바이스컨텍스트 출력시스템을설계할때고려할사항 모니터, 비디오카드, 프린터등출력에사용되는주변장치가변경되는경우에도프로그램을수정할필요가없어야함 여러프로그램이화면을분할해서사용하므로하나의프로그램이출력을하는데있어서제약을가해야함 즉, 화면이나기타출력장치를직접접근 (Direct Access) 하거나독점해서사용하는것을운영체제차원에서막아야함 GDI 와디바이스컨텍스트 화면출력할때고려할사항 클라이언트영역에출력하려면화면에해당하는윈도우위치를알아야함 화면에여러개의윈도우가있을때출력결과가다른윈도우의영역을침범하지않아야함 현재출력할화면이다른윈도우에가려졌다면출력을할수없어야함 Device Context (DC) 사용 3 4

2 GDI 와디바이스컨텍스트 GDI (Graphics Device Interface) 운영체제의하위시스템중하나로 DLL 로존재 (GDI32.DLL) 응용프로그램의요청을받아서실제출력장치에대한출력담당 응용프로그램에대한독립적인그래픽동작수행 장치에의존하지않으므로장치가변경되더라도프로그램의수정이불필요 멀티태스킹을위한분할처리를하는운영체제에서하나의응용프로그램이출력장치를독점하지못하도록운영체제를통하여장치에간접접근 응용프로그램 장치독립적 GDI 장치의존적 출력장치 ( 화면, 프린터등 ) 5 GDI 와디바이스컨텍스트 DC (Device Context) GDI 가생성하고관리하는데이터구조체 DC 를통해멀티태스킹 ( 멀티스레딩 ) GUI 환경에서발생할수있는여러상황을고려하여출력가능 예, 출력영역, 원점정보, 그래픽정보 ( 글꼴, 펜, 브러시 ) 기능 응용프로그램의출력에대한허가를얻고, 그려지는영역을결정하는역할 윈도우의클리핑영역 ( 즉, 응용프로그램의출력허용영역 ) 관리 그래픽정보관리 ( 펜, 브러시, 글꼴, 비트맵, 팔레트 ) DC 를얻고나면, 반드시작업완료시해제필요 6 GDI 와디바이스컨텍스트 윈도우응용프로그램의출력과정 출력하기전에윈도우운영체제에게 DC 요청 DC요청 운영체제의 GDI는내부적으로 DC를만든후 DC 핸들 ( 즉, HDC 타입, 32비트포인터 ) 을해당응용프로그램에게넘겨줌 HDC반환 응용프로그램에서는받은 DC 핸들을출력관련 API 함수를호출할때사용하고, 출력관련 API 함수를호출하면 GDI가이를처리 API(HDC,..) GDI는해당응용프로그램이넘겨준 DC 핸들로내부데이터를참조하여다양한상황을고려해서출력출력응용프로그램 Invalid Region ( 무효영역 ) 메모장이그림판의일부를가리고있다가가려진부분이드러나는경우 ( 두가지방법이존재 ) 운영체제가가려진부분을메모리에임시저장해두었다가다시화면을복구 운영체제가화면복구를직접담당하는것 화면에다시그려야할부분을프로그램에알려주면프로그램이알아서다시그림 화면복구를각응용프로그램이담당하고운영체제는복구해야할시점과복구할영역정보전달하는것 디바이스컨텍스트 GDI 장치드라이버 출력장치 ( 화면, 프린터등 ) OS 7 8

3 Invalid Region ( 무효영역 ) 화면을다시그려야하는상황 무효영역을다시그리기위해서해당응용프로그램으로 WM_PAINT 메시지를보내어처리될수있도록함 WM_PAINT 메시지를받으면 ::BeginPaint() 호출 다시그려야하는영역 ( 즉, 무효영역 ) 에대한정보획득 이영역에출력할수있는 HDC 획득 화면출력이끝나면 ::EndPaint() 호출 WM_PAINT 메시지발생상황 윈도우가생성될때 윈도우의크기가변경될때 최소화또는최대화되었을때 다른윈도우가가렸다가드러날때 Invalid Region ( 무효영역 ) 무효영역생성 응용프로그램내에서강제적으로 WM_PAINT 메시지를발생시키기위한함수배경을지울것인지? // 전체영역무효화 void CWnd::Invalidate (BOOL berase = TRUE); // 일부사각영역만무효화 void CWnd::InvalidateRect (LPCRECT lprect, BOOL berase = TRUE); 무효화할영역의좌표 9 10 Invalid Region ( 무효영역 ) WM_PAINT 메시지처리 출력할내용이없어도반드시 HelloSDK BeginPaint 를호출할것. 그렇치않으면 OS가계속무효영역이존재하는것으로 case WM_PAINT: 간주함 hdc = BeginPaint(hwnd, &ps); // DC를얻음 TextOut(hdc, 100, 100, str, lstrlen(str)); // 출력 EndPaint(hwnd, &ps); // DC 반환 return 0; HelloMFC DC 를얻고반환하는작업이 CDC 클래스의생성자와소멸자에서수행 출력방법비교 SDK 윈도우운영체제에게 DC를요청 운영체제로부터받은 DC 핸들을사용하여출력 운영체제에게 DC 사용이끝났음을알림 MFC DC 객체생성 DC 객체의멤버함수를호출하여출력 void CMainFrame::OnPaint() { char *msg = "Hello, MFC"; CPaintDC dc(this); dc.textout(100, 100, msg); MFC 에서는 WM_PAINT 이벤트가발생하면 OnPaint() 가수행됨. 내부적으로 BeginPaint/EndPaint 호출 11 MFC 의 CDC 파생클래스를이용하면 DC 를편리하게다룰수있음 12

4 다양한 DC 클래스 다양한 DC 클래스 클래스계층도 클래스이름 CPaintDC 용도 클라이언트영역에출력할때 (WM_PAINT 메시지핸들러에서만사용 ) CClientDC 클라이언트영역에출력할때 (WM_PAINT 메시지핸들러를제외한다른모든곳에서사용 ) CWindowDC 윈도우의전체영역 ( 클라이언트영역 + 비클라이언트영역 ) 에출력할때 CMetaFileDC 메타파일 (Metafile) 에출력할때 CPaintDC 클래스 WM_PAINT 메시지가발생했을때다시그려져야할영역 (Invalid Rectangle) 에대한 DC 관리 WM_PAINT 메시지핸들러인 OnPaint() 함수에서사용 내부적으로 BeginPaint() 함수를호출하고소멸자는 EndPaint() 함수를호출 CPaintDC 사용예 void CChildView::OnPaint() { CPaintDC dc(this); // View 의 client 영역에출력할수있도록 DC 개체생성 // 출력작업... CPaintDC 클래스 CPaintDC 는 WM_PAINT 메시지가발생할때마다호출 윈도우크기가변경하는등의상황에서도항상표시됨 (100, 100) (300, 300) void CChildView::OnPaint() { CPaintDC dc(this); dc.rectangle(100, 100, 300, 300); 15 16

5 CClientDC 클래스 클라이언트영역만을표시하는 DC 관리 일시적으로윈도우의클라이언트영역에서그래픽개체를사용할경우에이용 생성자에서 GetDC 함수를호출하여 DC 를얻고, 소멸자에서 ReleaseDC 함수를호출하여 DC 를해제 생성시출력대상이되는윈도우의핸들값을인자로사용 CClientDC 사용예 void CChildView::OnLButtonDown(UINT nflags, CPoint point) { CClientDC dc(this); // 현재 View 객체의클라이언트영역의 DC생성 // 출력작업 CClientDC 클래스 화면에왼쪽마우스버튼을누르면그점을중심으로반지름이 30 인원이그려지는예 void CChildView::OnLButtonDown(UINT nflags, CPoint point) { CClientDC dc(this); dc.ellipse(point.x-30, point.y-30, point.x+30, point.y+30); CWnd::OnLButtonDown(nFlags, point) 18 CWindowDC 클래스 윈도우전체영역 ( 비클라이언트 + 클라이언트 ) 에그래픽요소를출력하고자할때사용 CWindowDC 사용방법 CPaintDC, CClientDC 클래스와동일 원점위치 (0, 0) CWindowDC (0, 0) CPaintDC, CClientDC 19 CMetaFileDC 클래스 메타파일 (Metafile) GDI 명령어를저장할수있는파일 CMetaFileDC 사용방법 CMetaFileDC 객체를만든후 CMetaFileDC::Create() 호출 메타파일객체를일반적인디바이스컨텍스트객체로간주하고출력관련멤버함수를호출 CMetaFileDC::Close() 를호출하면윈도우운영체제가내부적으로메타파일을만든후메타파일핸들 (HMETAFILE 타입 ) 을리턴 CDC::PlayMetaFile() 로메타파일을실행 CMetaFileDC mdc; // 메타파일 DC 객체 ( 순수한 C++ 객체 ) 생성 mdc.create(); // 메타파일 DC( 운영체제가인식하는 ) 생성 mdc.ellipse(0, 50, 50, 100); // 메타파일에출력 mdc.rectangle(50, 50, 100, 100); // 메타파일에출력 HMETAFILE m_hmf = mdc.close(); // 메타파일핸들저장.. CClientDC dc(this); 20 dc.playmetafile(m_hmf); // 메타파일실행

6 CDC 그래픽함수 CDC 그래픽함수 점찍기이름 GetPixel() SetPixel() SetPixelV() 기능 화면의특정위치에해당하는점의색을얻는다. 화면의특정위치에원하는색의점을찍으며원래의점의색을리턴한다. SetPixel 과기능은동일하지만 SetPixel 함수와달리원래의점의색을리턴하지않으므로속도가더빠르다. 선그리기 이름 MoveTo() LineTo() 한번의호출로선을그리는함수는제공하지않으며다음두단계를거쳐야함 기능 현재위치를옮긴다. 현재위치로부터특정위치까지선을그린후현재위치를갱신한다. 21 dc.moveto(100, 100); dc.lineto(200, 200); (100, 100) (200, 200) 22 CDC 그래픽함수 도형그리기 CDC 그래픽함수 텍스트출력함수 이름 기능 이름 기능 Rectangle() 사각형을그린다. TextOut() 특정위치에문자열을출력한다. Ellipse() 사각형에내접하는타원을그린다. DrawText() 사각형을기준으로문자열을출력한다. Polyline() 다각선을그린다. SetTextColor() 문자의색을바꾼다. Polygon() 다각형을그린다. SetBkColor() 문자의배경색을바꾼다. PolyBezier() 베지어곡선을그린다. SetTextAlign() 기준위치에대한문자열의정렬방식을정한다

7 void CGDITestView::OnDraw(CDC* pdc) { CString str; int cx, cy, x1, x2, y1, y2; CRect rect; GetClientRect(&rect); // 클라이언트영역의크기얻기 cx = rect.width() / 2; cy = rect.height() / 2; // 클라이언트영역중간위치얻기 str.format(" 화면중간위치 (%d:%d)", cx,cy); pdc->textout(0, 0, str); // 문자열출력 // 원그리기 ( 클라이언트영역에내접하는원 ) pdc->ellipse(rect); // 문자열출력 pdc->drawtext(str, rect, DT_CENTER DT_VCENTER DT_SINGLELINE); // 선그리기, 화면높이의중간위치에서화면폭의중간위치까지선그리기 pdc->moveto(0, cy); pdc->lineto (cx, cy); // 다각형그리기, 꼭지점의좌표값 3개로삼각형그리기 CPoint ptdata1[3]={cpoint(100,100), CPoint(150,50), CPoint(200,100); pdc->polygon(ptdata1, 3); // 베지어곡선그리기 CPoint ptdata2[4]={cpoint(100,200), CPoint(150,100), CPoint(200,300),CPoint(250,200); pdc->polybezier(ptdata2, 4); 25 매핑모드 (Mapping Mode) 주어진좌표가화면상실제어디에해당하는지결정하는방법 논리좌표 ( 논리단위 ) GDI 그래픽함수들이사용하는모든좌표 CDC 에서사용하는윈도우좌표 물리좌표 ( 장치단위 ) 실제화면에출력되는좌표 ( 픽셀단위 ) CWnd 에서사용하는좌표 뷰포트 (viewport) : 물리좌표가사용되는영역 매핑모드관련함수 SetMapMode(int fnmapmode ); int GetMapMode(); 사용자정의매핑모드를이용할경우범위지정함수 SetWindowExt() : 논리단위의범위지정함수 SetViewPortExt() : 장치단위의범위지정함수 26 매핑모드종류 매핑모드단위 x 축 y 축 MM_TEXT 1 픽셀 (1:1 로 mapping) +x +y MM_LOMETRIC 0.1 mm +x -y MM_HIMETRIC 0.01 mm ( 장치의해상도를 +x -y MM_LOENGLISH 0.01 인치 고려하여 +x -y 논리단위를 MM_HIENGLISH 인치 장치단위로매핑 ) +x -y MM_TWIPS 1/1440 인치 +x -y MM_ISOTROPIC 사용자정의 ( 가로, 세로길이동일 ) 사용자정의 사용자정의 MM_ANISOTROPIC 사용자정의사용자정의사용자정의 물리좌표와원점 스크린좌표와클라이언트좌표스크린좌표의원점클라이언트좌표의원점 SetMapMode(value) 27 28

8 좌표변환 DC 의속성함수 좌표변환함수 논리좌표 <-> 장치좌표 void LPtoDP(LPPOINT lppoints, int ncount = 1); void DPtoLP(LPPOINTlpPoints, intncount= 1); 클라이언트좌표 <-> 스크린좌표 장치좌표 void ScreenToClient(LPPOINT lppoint); void ClientToScreen(LPPOINT lppoint); 클라이언트좌표 CWnd::ScreenToClient CWnd:: ClientToScreen 스크린좌표 CDC::DPtoLP CDC::LPtoDP 논리좌표 속성 초기값 텍스트색상 검정색 배경색상 흰색 배경모드 OPAQUE 매핑모드 MM_TEXT 그리기모드 R2_COPYPEN 현재위치 (0, 0) 펜 BLACK_PEN 브러시 WHITE_BRUSH 폰트 SYSTEM_FONT 비트맵 없음 팔레트 없음 영역 없음 속성을얻는함수 GetTextColor() GetBkColor() GetBkMode() GetMapMode() GetROP2() GetCurrentPosition() SelectPalette() 속성을변경하는함수 SetTextColor() SetBkColor() SetBkMode() SetMapMode() SetROP2() MoveTo() SelectPalette() 29 이속성에따라 GDI 출력함수의결과가달라짐 30 그리기모드 (DrawMode) 펜, 브러시에적용되는연산 - SetROP2(int ndrawmode) 그림을그릴때사용하는색상 (S) 와스크린원래색상 (D) 의혼합방법 그리기모드 연산 그리기모드 연산 R2_NOP D = D R2_NOT D = ~D R2_BLACK D = BLACK R2_WHITE D = WHITE R2_COPYPEN D = S R2_NOTCOPYPEN D = ~S R2_MERGEPENNOT D = ~D S R2_MASKPENNOT D = ~D & S R2_MERGENOTPEN D = ~S D R2_MASKNOTPEN D = ~S & D R2_MERGEPEN D = D S R2_NOTMERGEPEN D = ~(D S) R2_MASKPEN D = D & S R2_NOTMASKPEN D = ~(D & S) R2_XORPEN D = S ^ D R2_NOTXORPEN D = ~(S ^ D) 바탕색복원에이용 ( 같은그림을두번그리기 ) S (Source) //Raster Operation (DrawMode) 예 CClientDC dc(this); CColorDialog dlgcolor; // 색상다이얼로그의인스턴스생성 COLORREF pencolor; // 색상다이얼로그에서색상를선택하고확인을누르면 if (dlgcolor.domodal() == IDOK) { pencolor = dlgcolor.getcolor(); // 선택한색상값을얻어PenColor에설정 CPen pen, *oldpen; pen.createpen(ps_solid, 2, pencolor); // PEN 객체생성 CPen(PenColor); oldpen = dc.selectobject(&pen); // PEN 객체등록 dc.setrop2(r2_xorpen); // XORPEN 으로설정 ( 보색으로처리 ) dc.rectangle(100, 100, 150,150); dc.setrop2(r2_black); // BLACK으로설정 dc.rectangle(150, 150, 200, 200); dc.setrop2(r2_copypen); // COPYPEN 으로설정 dc.rectangle(200, 200, 250, 250); dc.selectobject(oldpen); // PEN 객체복원 D 31(Destination) White color : RGB(255,255,255) Black color : RGB(0,0,0) 32

9 배경모드 (BackgroundMode) 배경에적용되는연산 - SetBkMode(int nbkmode) OPAQUE : 현재배경색 Text 를출력하거나도형을그릴때현재 DC 에설정된배경색으로칠함 TRANSPARENT : 투명배경색 Text 를출력하거나도형을그릴때배경을그대로둠 CClientDC dc(this); dc.selectstockobject(ltgray_brush); // 배경을밝은회색으로칠한다. Rect rect; GetClientRect(&rect); dc.rectangle(&rect); // 클라이언트크기의사각형을출력. dc.setbkmode(transparent); // 투명배경으로설정 dc.textout(100, 100, CString( 투명배경문자모드 ")); // 투명배경인문자열출력 GDI 객체 GDI 객체 GDI에서출력할때사용하는도구 종류 GDI 객체용도클래스이름 펜 선을그릴때 CPen 브러시 면의내부를채울때 CBrush 폰트 문자를출력할때 CFont 비트맵 픽셀의집합으로이루어진그림을다룰때 CBitmap 팔레트 출력될색의집합을다룰때 CPalette 영역 다양한형태의면을정의할때 CRgn dc.setbkmode(opaque); // 기존배경색으로복원 33 dc.textout(100, 150, CString(" 불투명배경문자모드 ")); // 초기배경색으로문자열출력 34 GDI 객체 GDI 객체 클래스계층도 MFC 는 GDI 객체를다룰수있도록 7 개의클래스를제공함. CGdiObject 는이들클래스의 Base Class 35 GDI 객체생성 GDI객체를위한각클래스의생성자나 Create함수이용 CreatePen(), CreateSolidBrush(),CreateBitmap(), CreatePalette( ), CreateFont(), CreatePolygonRgn() 객체를 Device Context에등록 CDC:: 함수이용 기존설정된객체는반환되어포인터로저장 poldgdiobj = dc.selectobject(&newgdiobj) GDI 함수로출력작업 dc.rectangle(..) Device Context에이전GDI객체로환원 dc.selectobject(poldgdiobj) 객체삭제 DeleteObject() 함수로강제삭제 36 GDI 객체가소멸될때소멸자에의한자동삭제

10 GDI 객체 CDC class의 SelectObject( ) - Afxwin.h 파일참조 public: virtual CGdiObject* SelectStockObject(int nindex); CPen* SelectObject(CPen* ppen); CBrush* SelectObject(CBrush* pbrush); virtual CFont* SelectObject(CFont* pfont); CBitmap* SelectObject(CBitmap* pbitmap); int SelectObject(CRgn* prgn); CGdiObject* SelectObject(CGdiObject* pobject); GDI 객체사용예 CClientDC dc(this); //CClientDC 생성 CPen mypen, *poldpen; // 새로운펜과기존의펜을저장할변수 mypen.createpen(ps_dot, 1, RGB(0,0,255)); // 파란점선을갖는펜객체를생성 poldpen = dc.selectobject(&mypen); // DC에새로운펜을설정 dc.rectangle(..); // 출력작업 ( 사각형이파란점선으로그려짐 ) dc.selectobject(poldpen); // DC 에기존의펜을복원 펜 선이나영역의경계선을그릴때사용 선의두께, 색상, 선의스타일설정 생성방법 생성자 ( 방법1) 또는 CreatePen ( 방법2) 이용 // 방법 1 CPen pen(ps_solid, 2, RGB(255, 0, 0)); // 방법2 CPen pen; pen.createpen(ps_solid, 2, RGB (255, 0, 0)); 펜스타일 펜 사용예 1 CPaintDC dc(this); // DC 생성 CPen pen(ps_solid, 1, RGB(0, 0, 255)); // 펜객체생성 CPen *poldpen = dc.selectobject(&pen); // DC에새로운펜객체설정 dc.rectangle(100, 100, 200, 200); // 사각형그리기 dc.selectobject(poldpen); // 이전펜객체복원 사용예 2 실제로는이전펜의주소를저장하고마지막으로펜을원상복구하는부분을생략해도무방함 CPaintDC dc(this); // DC 생성 CPen pen(ps_solid, 1, RGB(0, 0, 255)); // 펜객체생성 dc.selectobject(&pen); // 펜선택 dc.rectangle(100, 100, 200, 200); // 사각형그리기 39 40

11 브러시 영역의내부를채울때사용 영역에채워질색, 패턴등을설정 종류 브러시종류 솔리드 (Solid, 속이채워짐 ) 해치 (Hatch, 교차된평행선무늬 ) 패턴 (Pattern, 비트맵의반복무늬 ) 생성예 CBrush brush(rgb(255, 0, 0)); CreateSolidBrush(RGB(255, 0, 0)); CBrush brush(hs_diagcross, RGB(255, 0, 0)); CreateHatchBrush(HS_DIAGCROSS, RGB(255, 0, 0)); CBitmap bitmap; bitmap.loadbitmap(idb_bitmap1); CBrush brush(&bitmap); 브러시 HatchBrush style 해치브러시의스타일 HS_BDIAGONAL HS_CROSS HS_DIAGCROSS HS_FDIAGONAL HS_HORIZONTAL HS_VERTICAL 내용오른쪽에서왼쪽으로 45도내려가는빗금십자가형태의빗금 X자형태의빗금왼쪽에서오른쪽으로 45도내려가는빗금 수평으로빗금 수직으로빗금 모양 브러시 사용예 1 CPaintDC dc(this); CBrush brush(rgb(255, 0, 0)); CBrush *poldbrush = dc.selectobject(&brush); dc.ellipse(100, 100, 200, 200); dc.selectobject(poldbrush); 사용예 2 펜의경우와마찬가지로실제로는이전브러시의주소를저장하고마지막으로다시브러시를원상복구하는부분을생략해도무방함 CPaintDC dc(this); CBrush brush(rgb(255, 0, 0)); dc.selectobject(&brush); dc.ellipse(100, 100, 200, 200); 43 폰트 (Font) 문자출력을위한글자의모양, 크기를설정 Font 의종류 논리적인폰트 : 이상적인폰트에대한표현으로실제로존재하는유사한폰트를얻기위해사용 물리적인폰트 : 실제로시스템에설치되어있는폰트로실제화면에나타나는폰트 폰트를사용하는방법 폰트를출력하기위해서는원하는폰트에대해논리적인폰트를 LOGFONT타입으로기술하여생성하고 DC에폰트를설정 윈도우 GDI 의폰트맵퍼가시스템에설치되어있는폰트들중에가장가까운물리적인폰트를찾아출력 44

12 Logical Font 구조체 Font( 글꼴 ) 에대한정보를가지는데이터구조 typedef struct taglogfont { /* lf */ LONG lfheight; // 문자높이 LONG lfwidth; // 문자폭 LONG lfescapement; // 문자방향 LONG lforientation; // 문자회전각도 LONG lfweight; // 문자굵기 BYTE lfitalic; // 기울임꼴 BYTE lfunderline; // 밑줄 BYTE lfstrikeout; // 취소선 BYTE lfcharset; // 문자세트 BYTE lfoutprecision; // output precision BYTE lfclipprecision; // clipping precision BYTE lfquality; // output quality BYTE lfpitchandfamily; // 문자간격과글꼴패밀리 TCHAR lffacename[lf_facesize]; // 글자체이름 LOGFONT; 45 CFont 클래스 논리적폰트를생성하고관리하는클래스 새로운글꼴생성메소드 CFont::CreatePointFont(..) 폰트의크기 ( 포인트단위 ) 와이름만으로폰트를생성, 나머지는기본값으로설정 CFont::CreateFont( ) LOGFONT 구조체가가지는모든값들을직접매개변수로사용하여폰트생성 CFont::CreateFontIndirect( ) LOGFONT 구조체포인터를매개변수로사용하여폰트생성 CFont font; // CFont 객체생성 font.createfont(...); // argument가 16개로너무복잡 // font.createfontindirect(...); // CFont 객체에대해 Create*() 함수호출 // font.createpointfont(400, Arial); // 400/10 포인트크기 Arial 폰트 // font.createpointfontindirect(...); 46 Font 공통다이얼로그박스 TEXTMATRIC 구조체 Font 공통다이얼로그박스의 LOGFONT 구조체에저장된값으로논리적폰트객체생성 public: LOGFONT m_logfont; //logical font 구조체변수선언. // 폰트공통다이얼로그박스로부터 logical font 구조체얻어옴 CFontDialog dlg(&m_logfont); if (dlg.domodal() == IDOK) { dlg.getcurrentfont(&m_logfont); // 폰트공통다이얼로그박스에서선택된논리적폰트정보얻기 str.format(" 글자체 =%s, 크기 =%d", dlg.getfacename(), dlg.getsize()/10); // 글자체와크기 ( 포인트단위의 10배로얻어짐 ) 출력 47 typedef struct tagtextmetric { /* tm */ int tmheight; int tmascent; int tmdescent; int tminternalleading; int tmexternalleading; int tmavecharwidth; int tmmaxcharwidth; int tmweight; BYTE tmitalic; BYTE tmunderlined; BYTE tmstruckout; BYTE tmfirstchar; BYTE tmlastchar; BYTE tmdefaultchar; BYTE tmbreakchar; BYTE tmpitchandfamily; BYTE tmcharset; int tmoverhang; int tmdigitizedaspectx; int tmdigitizedaspecty; TEXTMETRIC; DC 에선택된논리적폰트와관련된물리적폰트의특징을나타냄 CDC::GetTextMatrics(LPTE XTMETRIC lpmetrics ) 으로얻어옴 48

13 void CGDITestView::OnGDITestFont() { CFont newfont, *poldfont=null; TEXTMETRIC tm; CString str; CClientDC dc(this); // 폰트공통다이얼로그박스로부터 logical font 구조체얻어옴 CFontDialog dlg(&m_logfont); if (dlg.domodal() == IDOK) { dlg.getcurrentfont(&m_logfont); str.format(" 글자체 =%s, 크기 =%d", dlg.getfacename(), dlg.getsize()/10); // logical font 구조체를이용한폰트객체생성 if (newfont.createfontindirect(&m_logfont)) { poldfont = dc.selectobject(&newfont); //DC에새로운폰트객체설정 dc.textout(10,50, str); dc.gettextmetrics(&tm); //DC의폰트정보얻어옴 str.format(" 글자크기 ( 폭 =%d, 높이 =%d)", tm.tmavecharwidth, tm.tmheight); dc.textout(10,100, str); newfont.deleteobject(); newfont.createpointfont(200, "Arial"); // 크기와글꼴만으로간단하게폰트생성, 20point dc.selectobject(&newfont); str.format(" PointFont(200, Arial)"); dc.textout(10, 150, str); if (poldfont) 49 dc.selectobject(poldfont); // 원래 font 복원 Stock GDI Object ( 내장객체 ) 이름 BLACK_PEN WHITE_PEN NULL_PEN BLACK_BRUSH DKGRAY_BRUSH GRAY_BRUSH LTGRAY_BRUSH HOLLOW_BRUSH 또는 NULL_BRUSH SYSTEM_FONT 용도 폭이 1 픽셀인검정색펜 폭이 1 픽셀인흰색펜 투명펜 검정색브러시 어두운회색브러시 회색브러시 밝은회색브러시투명브러시 윈도우운영체제가사용하는폰트예 ) 메뉴, 대화상자,... 윈도우운영체제가미리만들어서제공하는 GDI 객체 내장객체는생성과정을생략하고 CDC::SelectStockObject() 50 함수를사용하여 DC에선택한다. Stock GDI Object ( 내장객체 ) 사용예 CClientDC dc(this); // DC 생성 CBrush* pold; pold = (CBrush*)dc.SelectStockObject(GRAY_BRUSH); // 내장된회색브러시를선택 // 실제출력작업 dc.selectobject(pold); 비트맵 복잡한그림을처리할때많이사용 비트맵정보 int CBitmap::GetBitmap (BITMAP* pbitmap); typedef struct tagbitmap { int bmtype; int bmwidth; // 비트맵의폭 ( 픽셀단위 ) int bmheight; // 비트맵의높이 ( 픽셀단위 ) int bmwidthbytes; BYTE bmplanes; BYTE bmbitspixel; LPVOID bmbits; BITMAP; 51 52

14 비트맵 비트맵정보출력 LoadBitmap(UINT nidresource) 리소스 ID 로비트맵얻기 GetBitmap(BITMAP* pbitmap) 비트맵정보구조체얻기 CBitmap bitmap; bitmap.loadbitmap(idb_bitmap1); BITMAP bmpinfo; bitmap.getbitmap(&bmpinfo); TRACE(" 가로 = %d, 세로 = %d\n", bmpinfo.bmwidth, bmpinfo.bmheight); 비트맵 비트맵은곧바로화면에출력하는함수를제공하지않음 비트맵출력절차 CBitmap::LoadBitmap() 함수를이용하여비트맵리소스로부터읽어오기 CDC::CreateCompatibleDC() 함수를이용하여메모리 DC 를생성 CDC:: 함수를이용하여비트맵을메모리 DC 에선택 CDC::BitBlt() 또는 CDC::StretchBlt() 함수를이용하여화면에출력 CDC:: 함수를이용하여 DC 를복원 Memory Device Context 메모리의일부를마치화면처럼다룰수있도록운영체제에서제공하는개념 응용프로그램에서는메모리 DC에비트맵을선택후실제물리적인출력장치로내보냄 BitBlt 또는 StretchBlt 함수에서 Blt는 Block Transfer의약자로서이는비트맵데이터를메모리에서메모리로고속전송한다는의미 비트맵 비트맵출력함수 BitBlt 메모리 DC 에서화면 DC 로비트맵블록을그대로전송하는함수 BOOL BitBlt (int x, int y, int nwidth, int nheight, CDC* psrcdc, int xsrc, int ysrc, DWORD dwrop) ; ysrc xsrc x y nwidth nheight psrcdc ( 메모리디바이스컨텍스트 ) 55 ( 스크린디바이스컨텍스트 ) 56

15 비트맵 비트맵출력함수 StretchBlt 비트맵을확대하거나축소하여비트블럭을전송 BOOL StretchBlt (int x, int y, int nwidth, int nheight, CDC* psrcdc, int xsrc, int ysrc, int nsrcwidth, int nsrcheight, DWORD dwrop) ; x y nwidth nheight ( 스크린디바이스컨텍스트 ) xsrc ysrc nsrcwidth nsrcheight psrcdc ( 메모리디바이스컨텍스트 ) dwrop : 비트맵래스터오퍼레이션 SRCCOPY : 배경그림무시하고비트맵출력 SRCAND : 배경그림과 AND 57 연산 SRCPAINT : 배경그림과 OR 연산 //Bitmap 화면출력예 CClientDC dc(this); // 비트맵리소스를로드한후크기정보를얻는다. CBitmap bitmap; bitmap.loadbitmap(idb_bitmap1); // 비트맵리소스읽어오기 BITMAP bmpinfo; bitmap.getbitmap(&bmpinfo); // 비트맵정보얻기 ( 크기등 ) // 메모리디바이스컨텍스트를만든후비트맵을선택해넣는다. CDC dcmem; dcmem.createcompatibledc(&dc); dcmem.selectobject(&bitmap); // 비트맵을화면에출력한다. dc.bitblt(10, 10, bmpinfo.bmwidth, bmpinfo.bmheight, &dcmem, 0, 0, SRCCOPY); // 비트맵의원래크기유지 dc.stretchblt(100, 100, bmpinfo.bmwidth*4, bmpinfo.bmheight*6, &dcmem, 0, 0, bmpinfo.bmwidth, bmpinfo.bmheight, SRCCOPY); // 비트맵의크기를변형 58

MFC 프로그래밍

MFC 프로그래밍 윈도우프로그래밍 Visual C++ 2010 MFC Programming 4 장. 화면출력 GDI 와 DC GDI(Graphics Device Interface) 윈도우운영체제에서그래픽출력을담당하는부분 장치독립성및멀티태스킹지원 운영체제의하위시스템중하나로 DLL 로존재 응용프로그램의요청을받아서실제출력장치에대한출력을담당 O/S 응용프로그램 GDI 장치출력장치드라이버

More information

08장 윈도우에서의 그리기

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

More information

Microsoft PowerPoint - 11주차.pptx

Microsoft PowerPoint - 11주차.pptx 11 주차 비트맵버튼 & 폰트 그래픽객체의사용 This week, we will study Button 에사용자 graphic image를넣는방법 Edit box의색상변경방법 폰트의종류변경, 폰트크기 / 속성변경방법 Graphic object 비트맵버튼의생성 버튼이미지를준비 사용할버튼의크기에적합한이미지를준비. 일반적으로.BMP 이미지파일을사용. Ex) Resource

More information

GDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widw

GDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widw Chapter 5. 그래픽처리 Widws Prgrammig, 2009 Fall GDI 와 DC GDI (Graphics Device Iterface) 응용프로그램이하드웨어를제어할수있도록윈도우 OS 가제공하는모든기능 윈도우가출력장치에대한정보를스스로판단하고분석하여, 실제로사용할드라이버를불러옴 이를이용할경우, 하드웨어독립적인프로그래밍을할수있음 Widws Device

More information

GDI의 개념

GDI의 개념 제 6 장그래픽객체의사용 6.1 GDI와 DC의개념 6.2 GDI 객체실습 6-1 직선과도형및비트맵그리기 6.3 GDI+ 의개념실습 6-2 사각형뷰포트에원그리기 GDI 의개념 Graphic Device Interface 윈도우가하드웨어를제어할수있도록응용프로그램에제공하는모든기능 응용프로그램과디바이스드라이버의중간역할 응용프로그램에대한장치독립적인그래픽동작수행 Device

More information

Programming hwp

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

More information

Microsoft PowerPoint - 09-CE-7-선과 도형

Microsoft PowerPoint - 09-CE-7-선과 도형 순천향대학교컴퓨터학부이상정 1 학습내용 디바이스컨텍스트 WM_PAINT 선, 도형그리기 GDI 객체 펜, 브러쉬 순천향대학교컴퓨터학부이상정 2 디바이스컨텍스트 순천향대학교컴퓨터학부이상정 3 디바이스컨텍스트 (1) 윈도우즈에서화면출력 ( 텍스트출력과차이점 ) 화면을사용할수있는권한이제약 자신이차지하는영역에만그림을그릴수있다. 좌표를계산하는방법이다르다 자기의윈도우즈의좌표를기준으로출력

More information

그래픽 프로그래밍

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

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

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

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

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

MFC 프로그래밍

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

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

디지털영상처리3

디지털영상처리3 비트맵 BMP 파일의 실제 BMP 파일의 BMP 파일을 화면에 개요 이해 분석 출력 } 비트맵 (bitmap) 윈도우즈에서영상을표현하기위해사용되는윈도우즈 GDI(Graphic Device Interface) 오브젝트의하나 } 벡터그래픽 (vector graphics) 점, 선, 면등의기본적인그리기도구를이용하여그림을그리는방식 } 윈도우즈 GDI(Graphic

More information

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

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

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

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

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

More information

Microsoft PowerPoint - CPP_chap3

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 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 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

쉽게 풀어쓴 C 프로그래밍

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

More information

디지털영상처리3

디지털영상처리3 비트맵개요 BMP 파일의이해실제 BMP 파일의분석 BMP 파일을화면에출력 } 비트맵 (bitmap) 윈도우즈에서영상을표현하기위해사용되는윈도우즈 GDI(Graphic Device Interface) 오브젝트의하나 } 벡터그래픽 (vector graphics) 점, 선, 면등의기본적인그리기도구를이용하여그림을그리는방식 } 윈도우즈 GDI(Graphic Device

More information

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

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

More information

Microsoft PowerPoint - C++ 5 .pptx

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

More information

쉽게 풀어쓴 C 프로그래밍

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

More information

설계란 무엇인가?

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

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

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문 1. 클래스와객체 추상데이터형 : 속성 (attribute) + 메서드 (method) 예 : 자동차의속성과메서드 C++ : 주로 class

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

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

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

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

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

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

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

Microsoft PowerPoint - hci2-lecture1.ppt

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

More information

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

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

PowerPoint Template

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

More information

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

KNK_C_05_Pointers_Arrays_structures_summary_v02

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

More information

JVM 메모리구조

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

More information

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드]

Microsoft PowerPoint - logo_2-미해답.ppt [호환 모드] Chap.2 Logo 프로그래밍기초 - 터틀그래픽명령어 ( 기본, 고급 ) 학습목표 터틀의이동과선그리기에대해살펴본다. 터틀의회전에대해살펴본다. 터틀펜과화면제어에대해살펴본다. 2012. 5. 박남제 namjepark@jejunu.ac.kr < 이동하기 > - 앞으로이동하기 forward 100 터틀이 100 픽셀만큼앞으로이동 2 < 이동하기 > forward(fd)

More information

Microsoft PowerPoint - chap06-2pointer.ppt

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

More information

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

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

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

윈도우시스템프로그래밍

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

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 CHAPTER 11. 자바스크립트와캔버스로게임 만들기 캔버스 캔버스는 요소로생성 캔버스는 HTML 페이지상에서사각형태의영역 실제그림은자바스크립트를통하여코드로그려야한다. 컨텍스트객체 컨텍스트 (context) 객체 : 자바스크립트에서물감과붓의역할을한다. var canvas = document.getelementbyid("mycanvas"); var

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

(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

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금, 8 장상속 상속의기본개념상속관련문제제기 base 클래스의접근제어와 protected 멤버상속관계에서의생성자와소멸자함수재정의 (function overriding) 디폴트액세스지정자와구조체 derived 클래스로부터의상속다중상속 virtual base 클래스 derived 클래스의디폴트복사생성자와디폴트대입연산자 private 생성자의사용 C++ 프로그래밍입문

More information

17장 클래스와 메소드

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 03 모델변환과시점변환 01 기하변환 02 계층구조 Modeling 03 Camera 시점변환 기하변환 (Geometric Transformation) 1. 이동 (Translation) 2. 회전 (Rotation) 3. 크기조절 (Scale) 4. 전단 (Shear) 5. 복합변환 6. 반사변환 7. 구조변형변환 2 기하변환 (Geometric Transformation)

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 Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

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

슬라이드 1

슬라이드 1 BMP 파일구조 김성영교수 금오공과대학교 컴퓨터공학부 학습목표 BMP 파일의구조및그특징을설명할수있다. 파일헤더및비트맵정보헤더의주요필드를구분하고그역할을설명할수있다. C언어를사용하여 BMP 파일을처리할수있다. 2 BMP 파일구조 File Header (BITMAPFILEHEADER) Bitmap Info. Header (BITMAPINFOHEADER) Headers

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

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

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

More information

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

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

More information

PowerPoint 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

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

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

More information

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

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

API 매뉴얼

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

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

슬라이드 1

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

More information

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

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

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

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

More information

슬라이드 1

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

More information

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

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

UI TASK & KEY EVENT

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

More information

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt AWT 컴포넌트 (1) 1. AWT 패키지 2. AWT 프로그램과이벤트 3. Component 클래스 4. 컴포넌트색칠하기 AWT GUI 를만들기위한 API 윈도우프로그래밍을위한클래스와도구를포함 Graphical User Interface 그래픽요소를통해프로그램과대화하는방식 그래픽요소를 GUI 컴포넌트라함 윈도우프로그램만들기 간단한 AWT 프로그램 import

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2

이장에서다룰내용 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2 03 장. 테두리여백지정하는속성 이번장에서는테이블, 레이어, 폼양식등의더예쁘게꾸미기위해서 CSS 를이용하여 HTML 요소의테두리속성을바꾸어보자. 이장에서다룰내용 1 2 3 테두리를제어하는스타일시트 외부여백 (Margin) 과내부여백 (Padding) 관련속성 위치관련속성 2 01. 테두리를제어하는스타일시트 속성값설명 border-width border-left-width

More information

Microsoft PowerPoint - hci2-lecture1.ppt

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

More information

; 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[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 information

Chapter #01 Subject

Chapter #01  Subject Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned

More information

tiawPlot ac 사용방법

tiawPlot ac 사용방법 tiawplot ac 매뉴얼 BORISOFT www.borisoft.co.kr park.ji@borisoft.co.kr HP : 00-370-077 Chapter 프로그램설치. 프로그램설치 3 2 Chapter tiawplot ac 사용하기.tiawPlot ac 소개 2.tiawPlot ac 실행하기 3. 도면파일등록및삭제 4. 출력장치설정 5. 출력옵션설정

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 16 강. 파일입출력목차 파일입출력기초 파일입출력모드 텍스트파일과이진파일 이진파일입출력 임의접근 1 /18 16 강. 파일입출력파일입출력기초 파일입출력과정 파일스트림객체생성 파일열기 사용 : 기본적으로표준입출력객체 (cin, cout) 사용방법과동일 파일닫기 파일스트림클래스의종류

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

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

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

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

More information

API 매뉴얼

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

More information

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

슬라이드 1

슬라이드 1 프로세싱 광운대학교로봇학부박광현 프로세싱실행 2 C:\processing-3.2.1 폴더 창나타내기 실행 정지 3 폭 높이 600 400 도형그리기 배경칠하기 5 background(255, 255, 255); R G B background(255, 0, 0); background(255, 122, 0); 선그리기 6 background(255, 122, 0);

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

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

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

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

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 06 Texture Mapping 01 Texture Mapping 의종류 02 Texture Mapping 이가능한객체생성 03 고급 Texture Mapping 01 Texture Mapping 의종류 1. 수동 Texture Mapping 2. 자동 Texture Mapping 2 01 Texture Mapping 의종류 좌표변환 Pipeline 에서

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