Programming hwp

Size: px
Start display at page:

Download "Programming hwp"

Transcription

1 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); r.inflaterect(-40, -20); // Create a static label cs = new CStatic(); cs->create(_t("hello World"), WS_CHILD WS_VISIBLE WS_BORDER SS_CENTER, r, this); // Create a new 36 point Arial font CFont *font = new CFont(); font->createfont(36, 0, 0, 0, 700, 0, 0, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH FF_DONTCARE, _T("Arial")); // Cause the label to use the new font cs->setfont(font); 3.5 메시지맵 (message map) 응용프로그램에서창안에배치한사용자인터페이스요소는두가지제어가능한특성을갖는데, 이들은외관과이벤트반응동작이다. 4절에서 CStatic 컨트롤의예를통해사용자인터페이스요소의외관을조정하기위해스타일속성을이용한다는것을살펴보았다. 이러한방식은 MFC 안의모든컨트롤클래스들에적용된다. 이절에서는메시지맵과간단한이벤트처리의이해에도움을주기위해먼저 CButton 컨트롤을살펴본다. 또컨트롤이아니라창자체에서발생하는이벤트들에대한처리방법도알아본다. 그런다음조금더복잡한예로 CScrollBar 컨트롤의경우를알아볼것이다

2 메시지맵이해하기 3절에서알아본것처럼 MFC 프로그램들에서 main() 함수나이벤트루프가드러나있지않다. 모든이벤트처리가 CWinApp 클래스안에숨겨진 C++ 코드들에의해수행된다. 운영체제로부터전달되어온이벤트들의큐에서이벤트들을하나씩차례로꺼내살펴보는이벤트루프가숨겨져있기때문에, 이벤트루프에서응용프로그램에의미있는이벤트들이나타났을때이벤트루프가이사실을프로그램에전달할수있는방법이필요하며, 바로메시지맵이이를위한메커니즘이다. 메시지맵은어떤이벤트가프로그램에의미있는이벤트인지, 또이러한이벤트들에반응하여호출될함수가무엇인지등을표시한다. 예를들어사용자가 "Quit" 이라는레이블을갖는버튼을누를때마다종료되는프로그램을작성한다고하자. 이를위해먼저적절한레이블을갖는버튼을생성할것이다. 그다음에버튼컨트롤의부모창에해당하는클래스안에메시지맵을만든다. 이는사용자가버튼컨트롤을클릭할때마다버튼은그부모창을나타내는객체에메시지를전달하기때문이다. 부모창을위한메시지맵을만들어줌으로써버튼에서발생하는메시지를가로채어이용할수있는메커니즘이확립된다. 메시지맵은그버튼에특정이벤트가발생했을때 MFC로하여금특정함수를호출하게만든다. 이경우 "Quit" 버튼에대한클릭이의미있는이벤트이며, 이의처리를위해지정된함수안에응용프로그램종료를위한코드를넣어주어야할것이다. 메시지맵의작성과이벤트처리함수를정의하는것이외의나머지작업들은모두 MFC가처리해준다. 사용자가 "Quit" 버튼을클릭하면, 버튼경계선안쪽에점선모양이생기며버튼에강조효과가발생하며, 자동적으로 "Quit" 버튼클릭에연계된함수가호출되고프로그램이종료될것이다. 간단한코드의추가로이와같이사용자이벤트에반응할수있는프로그램이만들어진다. CButton 클래스 CStatic 컨트롤은사용자이벤트에반응하지않는유일한컨트롤이다. CStatic 컨트롤을아무리많이클릭하더라도묵묵부답의상태가유지될것이다. 그러나 CStatic 컨트롤을제외한나머지컨트롤들은모두사용자이벤트에대해두가지로반응한다. 첫째, 사용자가해당컨트롤을건드리면컨트롤의외관에약간의변화가생긴다. 둘째, 각컨트롤은프로그램이필요한반응을할수있도록코드에게메시지를보내고자시도한다. 이러한절차를알아보기위해먼저 CButton 컨트롤을포함하는간단한예제프로그램을살펴보자. 이프로그램은 CStatic 컨트롤대신 CButton 컨트롤을사용한다는점을제외하면 3절의예제와유사하다. 이프로그램은메시지맵을사용하지않고있으며따라서버튼이벤트처리함수도정의되어있지않다. 그러나버튼을클릭했을때외관변화는일어나며, 따라서컨트롤의기본적인외관변화는 MFC에의해자체적으로수행된다는것을알수있다. // button1.cpp #include <afxwin.h>

3 #define IDC_BUTTON 100 // Declare the application class class CButtonApp : public CWinApp { virtual BOOL InitInstance(); ; // Create an instance of the application class CButtonApp ButtonApp; // Declare the main window class class CButtonWindow : public CFrameWnd { CButton *button; CButtonWindow(); ; // The InitInstance function is called once // when the application first executes BOOL CButtonApp::InitInstance() { m_pmainwnd = new CButtonWindow(); m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE; // The constructor for the window class CButtonWindow::CButtonWindow() { // Create the window itself Create(NULL, _T("CButton Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle CRect r; GetClientRect(&r); r.inflaterect(-20, -20);

4 // Create a button button = new CButton(); button->create(_t("push me"), WS_CHILD WS_VISIBLE BS_PUSHBUTTON, r, this, IDC_BUTTON); CButton 클래스의 Create() 함수에서다섯번째파라미터는해당버튼컨트롤에부여된고유번호를나타내는데, 문맥에따라컨트롤 ID 또는객체 ID 등으로불린다. CStatic의경우에도이파라미터가있지만디폴트인수가 -1로정해져있고쓰임새가없어잘사용하지않지만, 다른컨트롤들에서는메시지맵에서컨트롤을식별하는중요한역할을한다. 컨트롤 ID로는 100 이상의값을사용하며, 컨트롤마다다른번호를부여해야한다. 99 이하의값은시스템이리소스 ID 값으로예약해두고있다. 다른용도로이예제에서는숫자를직접사용하는대신 IDC_BUTTON이라는심볼상수를정의하여쓰고있다. 심볼앞부분의 "IDC_" 는컨트롤을위한 ID임을의미한다. CButton 클래스를위한스타일파라미터도 CStatic 클래스의경우와차이가있는데, BS_PUSHBUTTON( 일반버튼 ), BS_AUTORADIOBUTTON( 라디오버튼 ), BS_AUTOCHECKBOX ( 체크박스 ), BS_AUTO3STATE( 체크박스에부분체크상태추가 ), BS_LEFTTEXT 등을포함하는 11개의 "BS" ("Button Style") 스타일상수들이사용될수있다. 메시지맵의작성 아래의코드는앞의코드에버튼클릭처리를위한메시지맵과처리함수를추가한것이다. // button2.cpp #include <afxwin.h> #define IDC_BUTTON 100 // Declare the application class class CButtonApp : public CWinApp { virtual BOOL InitInstance(); ; // Create an instance of the application class CButtonApp ButtonApp;

5 // Declare the main window class class CButtonWindow : public CFrameWnd { CButton *button; CButtonWindow(); afx_msg void HandleButton(); DECLARE_MESSAGE_MAP() ; // The message handler function void CButtonWindow::HandleButton() { MessageBeep(-1); // The message map BEGIN_MESSAGE_MAP(CButtonWindow, CFrameWnd) ON_BN_CLICKED(IDC_BUTTON, HandleButton) END_MESSAGE_MAP() // The InitInstance function is called once // when the application first executes BOOL CButtonApp::InitInstance() { m_pmainwnd = new CButtonWindow(); m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE; // The constructor for the window class CButtonWindow::CButtonWindow() { // Create the window itself Create(NULL, _T("CButton Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle CRect r; GetClientRect(&r); r.inflaterect(-20, -20);

6 // Create a button button = new CButton(); button->create(_t("push me"), WS_CHILD WS_VISIBLE BS_PUSHBUTTON, r, this, IDC_BUTTON); 위의코드에는이전의코드에다음과같은세가지사항이추가되어있다. CButtonWindow 클래스선언에는새로운멤버함수하나와 DECLARE_MESSAGE_MAP 마크로가포함되어있다. DECLARE_MESSAGE_MAP 마크로는이클래스를위한메시지맵이정의되어있음을표시한다. 멤버함수 HandleButton() 는앞에수식어 afx_msg를갖고있는데, 이함수가메시지처리기 ( 이벤트처리기, 이벤트처리함수 ) 임을나타낸다. 이함수와마크로모두 public으로선언되어야한다. HandleButton() 함수는일반멤버함수와동일한방식으로정의된다. 이함수안에는경고음을만들어내는윈도우 API 함수 MessageBeep() 의호출이들어있다. 이함수의파라미터로 -1( 표준경고음 ), MB_ICONASTERISK, MB_ICONEXCLAMATION, MB_ICONQUESTION, MB_ICONHAND, MB_OK 등을사용할수있다. 메시지맵을정의하는마크로들이들어있다. 메시지맵은 BEGIN_MESSAGE_MAP 마크로로시작하여되는데, END_MESSAGE_MAP 마크로로끝난다. BEGIN_MESSAGE_MAP 마크로는두개의파라미터를취한다. 첫번째파라미터는메시지맵이적용되는클래스이름을나타내는데, 해당메시지는이클래스의인스턴스인객체에게전달될것이며메시지를처리하는처리기함수도이클래스안에정의되어있다. 두번째파라미터는첫번째파라미터가나타내는클래스의부모클래스를나타내며, 현재의클래스에서처리되지않는부분은부모클래스로처리가넘겨진다. 이마크로들사이에 ON_BN_CLICKED 마크로가나타나는데, 이마크로는두개의파라미터를취한다. 첫번째마크로는메시지를발생시키는컨트롤의 ID를나타내며, 두번째파라미터는이메시지에대한처리기함수의이름을나타낸다. Visual Studio 도움말에서위의마크로들에대한형식과설명을찾을수있다. "ON_" 으로시작하는메시지마크로마다파라미터가다르며, 처리기함수의프로토타입이정해져있다. ON_BN_CLICKED 마크로의경우처리기함수는파라미터를취하지않으며, 리턴타입도 void로선언되어있다. 버튼을클릭하면명령 (COMMAND) 메시지가발생하여버튼창의부모창인주실행창에게전달된다. 명령메시지는메시지발생객체의리소스 ID를포함한다. 자식창들에서발생하는

7 메시지는원래부모창에게전달되도록되어있다. 부모창을나타내는 CButtonWindow 클래스에서는메시지맵을사용하여이메시지를처리할함수가 HandleButton() 임을결정할수있으며, 따라서버튼이클릭될때마다 HandleButton() 함수가실행되어경고음을내게된다. ON_BN_CLICKED 마크로이름중 "BN" 은 Button Notify( 버튼으로부터의통지 ) 를나타내며, CWnd 클래스의 ON_COMMAND 마크로와동등하며, 이에대한별칭으로생각해도좋다. WM_SIZE 메시지 위의예제에서는주실행창안의자식창인버튼에서발생된메시지를주실행창에서받아처리하였다. 창들은또한자신에게보내는메시지들을발생시키는데, 이러한메시지들은 Window Message를의미하는 "WM_" 으로시작한다. 이런메시지의종류는 100개도넘는다. 여기서는 WM_SIZE 메시지에대해알아보고, 다음에 WM_TIMER 메시지에대해알아본다. 프레임윈도우는크기가변경될수있으며, 응용프로그램중에는창의크기변화에따라창안의내용이조정되는것들이있다. 웹브라우저들은창의폭에맞추어텍스트를보여준다. 아이콘모음을담고있는창의경우폭에따라한줄에몇개의아이콘을배치할것인지결정한다. 또메모장에서는창의크기에따라창의우측이나하단에스크롤바가생기거나없어지기도한다. 이러한일이가능하기위해서는창의크기변화라는이벤트를나타내는메시지가필요하며, WM_SIZE가바로이를위한메시지이다. 이메시지는창의크기가변경될때마다발생한다. WM_SIZE 메시지처리를포함하는다음예제코드를살펴보자. 이예제에서는창의크기가변경됨에따라창안의버튼의크기도여백크기를유지하며함께변하고있다. // button3.cpp #include <afxwin.h> #define IDC_BUTTON 100 // Declare the application class class CButtonApp : public CWinApp { virtual BOOL InitInstance(); ; // Create an instance of the application class CButtonApp ButtonApp; // Declare the main window class class CButtonWindow : public CFrameWnd {

8 ; CButton *button; CButtonWindow(); afx_msg void HandleButton(); afx_msg void OnSize(UINT, int, int); DECLARE_MESSAGE_MAP() // A message handler function void CButtonWindow::HandleButton() { MessageBeep(-1); // A message handler function void CButtonWindow::OnSize(UINT ntype, int cx, int cy) { CRect r; GetClientRect(&r); r.inflaterect(-20, -20); button->movewindow(r); // The message map BEGIN_MESSAGE_MAP(CButtonWindow, CFrameWnd) ON_BN_CLICKED(IDC_BUTTON, HandleButton) ON_WM_SIZE() END_MESSAGE_MAP() // The InitInstance function is called once // when the application first executes BOOL CButtonApp::InitInstance() { m_pmainwnd = new CButtonWindow(); m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE;

9 // The constructor for the window class CButtonWindow::CButtonWindow() { // Create the window itself Create(NULL, _T("CButton Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle CRect r; GetClientRect(&r); r.inflaterect(-20,-20); // Create a button button = new CButton(); button->create(_t("push me"), WS_CHILD WS_VISIBLE BS_PUSHBUTTON, r, this, IDC_BUTTON); 메시지맵안의 ON_WM_SIZE 마크로가주실행창에서발생하는 WM_SIZE 메시지처리를위한마크로이다. 주실행창은다른창의자식창이아니므로메시지를자신에게보낸다. 따라서이메시지는 CButtonWindow 클래스에서처리된다. ON_WM_SIZE 마크로는파라미터를갖지않음을유의하라. 이메시지를받은객체는 ID가주어지지않더라도어떤객체가이메시지를발생시켰는지이미알고있다. 바로자신이발생시켰기때문이다. 또 ON_BN_CLICKED의경우이메시지를발생시키는버튼이여러개있을수있고, 그에따라서로다른작업을하는처리함수이름을필요로한다. 그러나 WM_SIZE 메시지발생객체는하나뿐이므로아예처리함수의이름을 OnSize() 로고정시킴으로써이함수의역할을알아보기쉽게하고있다. CWnd 클래스에는 "On" 으로시작되는많은멤버함수들이있으며 OnSize() 함수와유사한역할을수행한다. 예를들면, WM_MOVE는창의이동시발생하는메시지이며, 이를위한메시지마크로는 ON_WM_MOVE이며, 처리기함수이름은 OnMove() 이다. 또창의일부또는전체가다른창에의해가려졌다가다시나타날경우발생하는메시지는 WM_PAINT, 관련마크로는 ON_WM_PAINT, 처리기함수는 OnPaint() 이다

10 OnSize() 함수의프로토타입은다음과같다. afx_msg void OnSize(UINT ntype, int cx, int cy); ntype는크기변경유형을나타내며, 이를위해정의된상수들에는 SIZE_MAXIMIZED, SIZE_MINIMIZED, SIZE_RESTORED, SIZE_MAXHIDE, SIZE_MAXSHOW 등이있으며, cx와 cy 는각기클라이언트영역의새로운폭과높이를나타낸다. OnSize(0 함수안에서버튼에적용되는 CWnd::MoveWindow() 함수는창의크기나위치를변경시킨다. WM_TIMER 메시지 이용방법이다소복잡한윈도우메시지들도있다. ON_WM_TIMER 메시지의경우메시지를발생시키기위해먼저 CWnd::SetTimer() 함수를호출해둔다. 이함수의첫번째파라미터는타이머를위한 ID이며, 두번째파라미터는 1/1000초단위로표시된타이머이벤트발생간격이다. 세번째파라미터가 NULL이면, WM_TIMER 메시지처리기함수이름은 OnTimer() 이지만, 별도의처리기함수이름을세번째파라미터를통해지정할수도있다. 아래의예제프로그램에서는 1초마다 WM_TIMER 메시지가발생하도록설정하였으며, 처리기함수 OnTimer() 에서는경고음을낸다. OnTimer() 함수의파라미터는타이머의 ID이다. 이메시지를 10번처리한후에는 OnTimer() 함수안에서 CWnd::KillTimer() 함수를호출하여타이머를종료시킨다. // button4.cpp #include <afxwin.h> #define IDC_BUTTON 100 #define IDT_TIMER1 200 // Declare the application class class CButtonApp : public CWinApp { virtual BOOL InitInstance(); ; // Create an instance of the application class CButtonApp ButtonApp;

11 // Declare the main window class class CButtonWindow : public CFrameWnd { CButton *button; CButtonWindow(); afx_msg void HandleButton(); afx_msg void OnSize(UINT, int, int); afx_msg void OnTimer(UINT); DECLARE_MESSAGE_MAP() ; // A message handler function void CButtonWindow::HandleButton() { MessageBeep(-1); // A message handler function void CButtonWindow::OnSize(UINT ntype, int cx, int cy) { CRect r; GetClientRect(&r); r.inflaterect(-20, -20); button->movewindow(r); // A message handler function void CButtonWindow::OnTimer(UINT id) { static int count = 10; MessageBeep(-1); if (--count == 0) KillTimer(id); // The message map BEGIN_MESSAGE_MAP(CButtonWindow, CFrameWnd) ON_BN_CLICKED(IDC_BUTTON, HandleButton) ON_WM_SIZE() ON_WM_TIMER() END_MESSAGE_MAP()

12 // The InitInstance function is called once // when the application first executes BOOL CButtonApp::InitInstance() { m_pmainwnd = new CButtonWindow(); m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE; // The constructor for the window class CButtonWindow::CButtonWindow() { // Create the window itself Create(NULL, _T("CButton Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Set up the timer SetTimer(IDT_TIMER1, 1000, NULL); // 1000 ms. // Get the size of the client rectangle CRect r; GetClientRect(&r); r.inflaterect(-20, -20); // Create a button button = new CButton(); button->create(_t("push me"), WS_CHILD WS_VISIBLE BS_PUSHBUTTON, r, this, IDC_BUTTON); 스크롤바컨트롤 윈도우운영체제에서는스크롤바가표준스크롤바와스크롤바컨트롤이라는두가지형태로사용된다. 표준스크롤바는에디트컨트롤이나리스트박스컨트롤등의다른컨트롤이나창에부속되어있는경우를말한다. 다른컨트롤에부속되어있는경우스크롤바를소유하고있는

13 마스터컨트롤에스크롤바를처리하는기능이포함되어있으며이를위한별도의코딩은필요하지않다. 일반창의경우 WS_HSCROLL이나 WS_VSCROLL 등의스타일파라미터를사용하여스크롤바를만들어줄수있다. 스크롤바컨트롤은독립적으로존재하는스크롤바를말하며, 다른컨트롤들과마찬가지로컨트롤을만들어주고컨트롤에서발생한메시지처리를해주는등을위한코딩이필요하다. 아래예제코드에서는독립형수평스크롤바의생성과메시지맵을보여주고있다. 스크롤바이벤트에대해단지경고음만을내고있으므로스크롤박스 (scroll box 또는 thumb) 가적절히이동하지못한다. #include <afxwin.h> #define IDM_SCROLLBAR 100 const int MIN_RANGE = 0; const int MAX_RANGE = 100; // Declare the application class class CScrollBarApp : public CWinApp { virtual BOOL InitInstance(); ; // Create an instance of the application class CScrollBarApp ScrollBarApp; // Declare the main window class class CScrollBarWindow : public CFrameWnd { CScrollBar *sb; CScrollBarWindow(); afx_msg void OnHScroll(UINT nsbcode, UINT npos, CScrollBar* pscrollbar); DECLARE_MESSAGE_MAP() ; // The message handler function void CScrollBarWindow::OnHScroll(UINT nsbcode, UINT npos, CScrollBar* pscrollbar) { MessageBeep(-1);

14 // The message map BEGIN_MESSAGE_MAP(CScrollBarWindow, CFrameWnd) ON_WM_HSCROLL() END_MESSAGE_MAP() // The InitInstance function is called once // when the application first executes BOOL CScrollBarApp::InitInstance() { m_pmainwnd = new CScrollBarWindow(); m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE; // The constructor for the window class CScrollBarWindow::CScrollBarWindow() { // Create the window itself Create(NULL, _T("CScrollBar Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle CRect r; GetClientRect(&r); // Create a scroll bar sb = new CScrollBar(); sb->create(ws_child WS_VISIBLE SBS_HORZ, CRect(10, 10, r.width()-10, 30), this, IDM_SCROLLBAR); sb->setscrollrange(min_range, MAX_RANGE, TRUE); CScrollBar::Create() 함수는 SBS_HORZ 스타일을사용하여수평스크롤바를만든다 ( 수직스크롤바의경우에는 SBS_VERT 사용 ). 그런다음 CScrollBar::SetScrollRange() 함수에서프로그램의서두에정의되어있는상수 MIN_RANGE와 MAX_RANGE를사용하여스크롤바범위를 0에서 100까지로설정한다. 수평 / 수직스크롤바이벤트를나타내는메시지는 WM_HSCROLL/WM_VSCROLL이며, 이에

15 대한처리기함수는 CWnd::OnHScroll()/CWnd::OnVScroll() 이다. 이함수들은 3개의파라미터를취하는데, 그중첫번째파라미터는사용자의스크롤바에대한동작을나타내는스크롤바코드이다. 스크롤바코드에는아래그림에표시된값들과각기키보드의 HOME, END 키를사용하여얻는 SB_TOP( 또는 SB_LEFT) 과 SB_BOTTOM(SB_RIGHT) 등이있다. 아래그림의스크롤바코드에서 SB_LINEUP, SB_LINEDOWN, SB_PAGEUP, SB_PAGEDOWN은각기 SB_LINELEFT, SB_LINERIGHT, SB_PAGELEFT, SB_PAGERIGHT와같은값을갖는다. 스크롤박스를마우스로끄는동안에는 SB_THUMBTRACK 동작이며, 끄는동작을완료하고마우스버튼에서손을떼는순간은 SB_THUMBPOSITION 동작이된다. 두번째파라미터는스크롤바코드가 SB_THUMBTRACK 또는 SB_THUMBPOSITION일경우스크롤박스의위치를나타낸다. 세번째파라미터는스크롤바컨트롤객체를가리키는포인터인데, 표준스크롤바의경우에는이값은 NULL이다. 아래코드는스크롤바코드에따라스크롤바박스를적절히이동할수있도록 OnHScroll() 함수를고쳐쓴것이다. SB_LINELEFT/RIGHT, SB_PAGELEFT/RIGHT의경우각기 ±1, ±10 만큼이동하게끔프로그램되어있는데, 이값은프로그래머가달리지정할수있다. CScrollBar::SetScrollPos() 함수는파라미터가나타내는위치로스크롤박스를이동시킨다. // The message handling function void CScrollBarWindow::OnHScroll (UINT nsbcode, UINT npos, CScrollBar* pscrollbar) { int pos; pos = sb->getscrollpos(); switch (nsbcode) { case SB_LINELEFT: pos -= 1; break; case SB_LINERIGHT: pos += 1; break;

16 case SB_PAGELEFT: pos -= 10; break; case SB_PAGERIGHT: pos += 10; break; case SB_TOP: pos = MIN_RANGE; break; case SB_BOTTOM: pos = MAX_RANGE; break; case SB_THUMBPOSITION: pos = npos; break; default: return; if (pos < MIN_RANGE) pos = MIN_RANGE; else if (pos > MAX_RANGE) pos = MAX_RANGE; sb->setscrollpos(pos); 헝가리식표기법 (Hungarian Notation) 윈도우 API나 MFC 등에서사용되는함수이름 ( 예 : MessageBeep), 파라미터이름 ( 예 : lpszfacename), 클래스이름 ( 예 : CWinApp), 멤버변수 ( 예 : m_pmainwnd) 등의각종이름에 는헝가리식표기법이라는특별한규칙이적용된다. 이표기법명칭의연원은마이크로소프트 사에서헝가리출신의프로그래머 Charles Simonyi에의해이표기법이창시되었음에따른것 이다. Prefix Variable Type Comment 이름들은표현하고자하는의미 a Array 를나타내는단어들을연결하여만 b Boolean 들어지는데, 각단어의첫글자는 d Double 대문자로표시함으로써단어들을구 h Handle 분한다. 예를들면, Count 또는 i Integer "index into" ClassName 등과같은이름들이사 l Long 용된다. 변수의경우에는이러한의 lp Long pointer to 미전달용이름앞에변수의타입을 lpfn Long pointer to function 나타내는문자들을덧붙인다. 예를 m_ Member variable 들면, ncount 는정수형변수이며, n Integer "number of" bflag는불리언타입변수이다. 특 p Pointer to 히멤버변수의경우에는 m_ 를맨 s String

17 앞에붙인다. 클래스이름앞에는 C sz Zero terminated string 를사용한다. u Unsigned integer 대표적인접두사들을옆의표에 C Class 정리하였지만, 이들외에도많은접두사들이사용되고있다. 지역변수의경우에는특별한규칙이없으며, 오히려멤버변수나파라미터등과구분하기위해 C 언어스타일의소문자와숫자만으로이루어진이름을사용하는것도좋을것이다. 연습문제 1. frame window 와 dialog box 의주요차이점은무엇인가? 2. modal 다이얼로그와 modeless 다이얼로그의차이는무엇인가? 3. MFC library를동적링크라이브러리방식과정적라이브러리방식으로사용하는것의차이는무엇인가? 4. 아래와같은형식의메시지맵에관한질문에답하라. BEGIN_MESSAGE_MAP(class-name-1, class-name-2) ON_... (...); // message handler specifications... END_MESSAGE_MAP() (1) class-name-1 이나타내는클래스의역할은무엇인가? (2) class-name-2 클래스는 class-name-1 클래스가파생되는상위클래스이다. 이상위클래스의역할은무엇인가?

Programming hwp

Programming hwp 3.2 MFC 프로그램의작성, 컴파일, 실행 먼저간단한 MFC 예제프로그램을 Visual C++ 에서작성, 컴파일, 실행등의작업을수행하는방법을보인다음예제프로그램을설명할것이다. 예제프로그램소스코드 //hello.cpp #include // Declare the application class class CHelloApp : public CWinApp

More information

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

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

More information

Programming hwp

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

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#1) 2013.09.27. 오병우 컴퓨터공학과금오공과대학교 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

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

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

5장 MFC기반 다지기

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

More information

PowerPoint Template

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

More information

MFC 프로그래밍

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

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

<4D F736F F F696E74202D203038C0E520C7A5C1D820C4C1C6AEB7D1205BC8A3C8AF20B8F0B5E55D>

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

More information

윈도우시스템프로그래밍

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

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

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

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

More information

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

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

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

C++ Programming

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

More information

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

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

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

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

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

슬라이드 1

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

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

슬라이드 1

슬라이드 1 핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton

More information

설계란 무엇인가?

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

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

슬라이드 1

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

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

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

Programming hwp

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

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

[ 마이크로프로세서 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

歯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

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

어댑터뷰

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

More information

04장 메시지 처리 유형

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

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074> 객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 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

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

Microsoft PowerPoint - Chapter 6.ppt

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

More information

Microsoft PowerPoint - C++ 5 .pptx

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

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

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

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

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

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

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

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

오버라이딩 (Overriding)

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

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

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

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

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

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

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

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

Visual C++의 개요

Visual C++의 개요 2.1 MFC 의개요 2.2 MFC 프로그램의구조 2.3 Visual C++ 의시작실습 2-1 Application Wizard 익히기 2.4 SDI 템플릿 2.5 MDI 템플릿 2.6 MFC 애플리케이션아키텍처실습 2-2 간단한 MFC 프로젝트만들기 MFC 의개요 MFC 윈도우애플리케이션을생성하기위해만들어진 C++ 클래스라이브러리 애플리케이션프레임워크를제공

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

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

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

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

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

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

윈도우시스템프로그래밍

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Modern Javascript

Modern Javascript ES6 - Arrow Function Class Template String Destructuring Default, Rest, Spread let, const for..of Promises Module System Map, Set * Generator * Symbol * * https://babeljs.io/ Babel is a JavaScript compiler.

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

Microsoft PowerPoint - hci2-lecture8.ppt

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

More information

쉽게 풀어쓴 C 프로그래밍

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

More information

슬라이드 1

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

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

제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

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

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

More information

17장 클래스와 메소드

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

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

쉽게 풀어쓴 C 프로그래밍

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

More information

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

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

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

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

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

More information

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1); void method() 2); void method1() public class Test 3); args) A 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

More information

슬라이드 1

슬라이드 1 마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***

More information

슬라이드 1

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

More information

슬라이드 1

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

More information

윈도우 프로그래밍의 개념

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

More information

Microsoft PowerPoint - hci2-lecture8.ppt

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

More information

Microsoft 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

JUNIT 실습및발표

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

More information

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

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

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

More information

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

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

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

More information

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>

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

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

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

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

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

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

More information

Microsoft PowerPoint - ÀÚ¹Ù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