윈도우시스템프로그래밍

Similar documents
윈도우시스템프로그래밍

윈도우시스템프로그래밍

Microsoft PowerPoint - hci2-lecture9.ppt

윈도우시스템프로그래밍

윈도우 프로그래밍의 개념

윈도우시스템프로그래밍

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

Microsoft Word - hci08-final-answer.doc

<4D F736F F F696E74202D203038C0E520C7A5C1D820C4C1C6AEB7D1205BC8A3C8AF20B8F0B5E55D>

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

Microsoft Word - hci07-final-answer.doc

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

Microsoft PowerPoint _대화상자.ppt

윈도우 프로그래밍의 개념

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

Microsoft PowerPoint - CPP_chap7_dialogbox(2)

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.


Programming hwp

歯Lecture2.PDF

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

PowerPoint Presentation

Convenience Timetable Design

유니티 변수-함수.key

PowerPoint Template

Chapter 1

DLL(Dynamic Linked Library)

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

C# Programming Guide - Types

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

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

07 자바의 다양한 클래스.key

Orcad Capture 9.x

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

2

PowerPoint 프레젠테이션

Programming hwp

04장 메시지 처리 유형

Design Issues

1

화판_미용성형시술 정보집.0305

MVVM 패턴의 이해

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

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

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

MAX+plus II Getting Started - 무작정따라하기

PowerPoint Presentation

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

chap10.PDF

설계란 무엇인가?

Visual Basic 반복문

2

Microsoft PowerPoint - Java7.pptx

[ 그림 8-1] XML 을이용한옵션메뉴설정방법 <menu> <item 항목ID" android:title=" 항목제목 "/> </menu> public boolean oncreateoptionsmenu(menu menu) { getme

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

The_IDA_Pro_Book

PowerPoint Template

2

Microsoft PowerPoint - CPP_chap6_interface(2)

thesis

chap 5: Trees

5장 MFC기반 다지기

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

제목 : 컴퓨터를 이용한 계측/제어 기초실헝

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

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

강의10

어댑터뷰

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

DE1-SoC Board

B64_3977_0000KOR_P01_55.indd

윈도우즈 프로그래밍

PowerPoint 프레젠테이션

윈도우 프로그래밍의 개념

PowerPoint Presentation

Remote UI Guide

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx


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

Microsoft PowerPoint - Chapter 6.ppt

untitled

History Created adstarsdk Reference Manual cadvanced Digital Chips Inc. All right reserved. No part of this document may be reproduced in a

PRO1_02E [읽기 전용]

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

PowerPoint 프레젠테이션

PowerPoint Presentation

SMB_ICMP_UDP(huichang).PDF

PowerPoint Presentation

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

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

untitled

PowerPoint 프레젠테이션

DocsPin_Korean.pages

C++ Programming

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

초보자를 위한 C# 21일 완성

10X56_NWG_KOR.indd

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

Transcription:

객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#2) 2012.10.08. 오병우 컴퓨터공학과금오공과대학교

Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window 비활성화 ( 열기 ) Modeless Dialog Parent windows 활성화유지 ( 찾기 ) Common Dialog 운영체제에내장 ( 글꼴 ) Department of Computer Engineering 2

Control Button, Check Box Edit, Spin Picture, Static Text Group Box, Radio Button List Box, Combo Box Slider, Scroll Bar Hot key, Tree, List Rich Edit, Date Time Picker, Month Calendar, IP Address, Progress, Tab, Animation Control 의종류 Class 없네? CButton 같은 CWnd 의파생클래스이므로 WM_PAINT 등처리가능 Control 도 Window 다!!! Department of Computer Engineering 3

MFC Class 및 MFC 파생 Class Dialog 위의 Control MFC Class 그대로사용가능 사용자정의 Dialog CDialog 의파생 Class 만들고사용 Function overriding Message Map Control Dialog Department of Computer Engineering 4

CDialog 파생 Class 에추가해야하는기능 사용자가컨트롤에입력한내용관리 Value Type Member Variable e.g., Edit Control 의입력내용 DDX_Text( -, ID, 변수 ) 컨트롤제어 IDC_ 로시작 Control Type Member Variable e.g., Edit Control 의 Disabled ( 비활성화 ) m_ctrlbeauty.enablewindow(false); DDX_Control( -, ID, 변수 ) DoDataExchange() 함수내에서처리 IDC_ 로시작 Department of Computer Engineering 5

멤버변수생성 Value Type Member Variable Ctrl 을누른상태에서 Control 더블클릭 DDV(Dialog Data Validation) 도지정가능 멤버변수추가마법사에서지정 int: Min & Max Value CString: Max Characters Value Type 으로변경 Dept. of Computer Engineering 6

Control 별 Value Type Member Variable CheckBox BOOL Radio Button int Group 별로 Tab order 에따라서몇번째가선택되었는지정수 Combo Box & ListBox CString 선택된문자열 Edit CString, int, UINT, long, DWORD, float, double, BYTE, short, BOOL, COleDateTime, COleCurrency Spin 직접연결못함 Edit Control 과 indirect 연결 Auto Buddy, Set Buddy Integer, Alignment-Right 로설정 Department of Computer Engineering 7

UpdateData() Control 과의 Data Sync. TRUE: 화면에서가져옴 다이얼로그박스컨트롤이름 : 일지매 UpdateData(FALSE) Value 형멤버변수 CString m_strname; 나이 : 20 int m_nage; OK Cancel UpdateData(TRUE) Department of Computer Engineering 8

Dialog 의처리과정 Constructor Dialog 시작 DoModal() Window 에서는 WM_CREATE Dialog 종료 OK 버튼 컨트롤초기화는여기에 ~ WM_INITDIALOG OnInitDialog() VS2003 부터는 Overriding 으로변경됨 IDOK OnOK() 사용자 UpdateData(FALSE) 입력 UpdateData(TRUE) DoDataExchange() Dialog Data exchange DoDataExchange() DDX_...() DDX_...() Dialog Data Validation DDV_...() 멤버변수에서 Control 로 데이터전달 Control 에서멤버변수로 데이터전달 Destructor Department of Computer Engineering 9

Control Type Member Variable Dialog 위에놓여진 Control들을직접제어컨트롤과 Control형멤버변수연결 Ctrl을누른상태에서 Control 더블클릭 Category( 범주 ) 에서 Control 선택 Control Class Control Type 선택 Department of Computer Engineering 10

Control Member Functions 주요함수 (MSDN 참조 ) CWnd Create, ShowWindow, EnableWindow, SetWindowPos, SetWindowText CEditClass GetSel, SetSel, ReplaceSel, GetLineCount, GetLine CButton (Check Box 및 Radio Button 포함 ) GetCheck, SetCheck CSpinButtonCtrl GetRange, SetRange, GetPos, SetPos, GetBuddy, SetBuddy CScrollBar GetScrollRange, SetScrollRange, GetScrollPos, SetScrollPos CListBox, CComboBox GetCount, GetCurSel, SetCurSel, AddString, InsertString, DeleteString, ResetContent, Dir Department of Computer Engineering 11

Control 초기화 Dialog 의 OnInitDialog() 를재정의하고여기서초기화 DoModal() 을해야지비로소윈도우생성 WM_INITDIALOG c.f.) 일반윈도우는 WM_CREATE 초기상태를비활성화로만들기 m_[control 변수명 ].EnableWindow(FALSE); Event Control 로부터 Dialog 로전달되는 Message VS2003 부터는 Overriding 으로변경됨 Control 자체에서처리하는것이아니고 Dialog 를거쳐서처리 자체에서처리하면다른 Control 처리가힘들기때문 Control 의파생 Class 를만들지않아도됨 Dialog 에서 Message Handler 만들어야함 Dialog Control 1 Control 2 Control n 포함 Department of Computer Engineering 12

주요 Message Notification Messages Button (Check Box 및 Radio Button 포함 ) Edit BN_CLICKED, BN_DOUBLECLICKED EN_CHANGE, EN_SETFOCUS, EN_KILLFOCUS List Box LBN_DBLCLK, LBN_SELCHANGE, LBN_SETFOCUS,LBN_KILLFOCUS Combo Box CBN_DBLCLK, CBN_SELCHANGE, CBN_SETFOCUS, CBN_KILLFOCUS, CBN_EDITCHANGE Department of Computer Engineering 13

실습 Project 및 Dialog 생성 다이얼로그선택후에속성에서 Caption 변경 선택 선택 해제 클릭 Department of Computer Engineering 14

실습 CDialog 의파생 Class 생성 또는다이얼로그선택후마우스오른쪽버튼눌러서 클래스추가 입력 Department of Computer Engineering 15

실습 메뉴연결 1 3 2 4 5 F5 눌러서실행 Department of Computer Engineering 16

실습 Edit Control 을위한 Control Type Member Variable 생성 Edit Control 선택후에 Ctrl+DoubleClick Header File Source File Department of Computer Engineering 17

실습 OnInitDialog() Function Override Edit Control 을비활성화 클릭 F5 눌러서실행 Department of Computer Engineering 18

실습 CheckBox 를위한 Value Type Member Variable 생성 CheckBox 선택후에 ctrl+doubleclick 입력 m_check 체크변경하지말것 선택 Department of Computer Engineering 19

실습 Control Notification Message Handler BN_CLICKED 이벤트를처리할함수추가 클릭 생성된코드확인 COpinionDlg.cpp 화면 (Layout) 으로부터 Control 의정보를소스코드로가져옴 화면으로부터가져온 m_check 값이 TRUE 이면 Edit 활성화, FALSE 이면비활성화 F5 눌러서실행 Department of Computer Engineering 20

Summary Relationship Diagram MFC Class Layout IDD_DIALOG1 IDC_CHECK1 UpdateData(TRUE) DDX Inherit Inherited Class COpinionDlg enum { IDD = IDD_DIALOG1 } DoDataExchange() BOOL m_check Value Type IDC_EDIT1 Event BN_CLICKED Control Functions 재정의함 CEdit m_ctrledit DoModal() OnInitDialog() UpdateData() Call OnBnClickedCheck1() Control Type Call 재정의하지않음 재정의하지않음 Department of Computer Engineering 21