윈도우시스템프로그래밍

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

윈도우시스템프로그래밍

윈도우시스템프로그래밍

윈도우시스템프로그래밍

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

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

5장 MFC기반 다지기

<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>

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

쉽게 풀어쓴 C 프로그래밍

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

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

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

C++ Programming

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

설계란 무엇인가?

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Java7.pptx

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

C++ Programming

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Design Issues

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

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

유니티 변수-함수.key

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

DLL(Dynamic Linked Library)

PowerPoint Template

PowerPoint Presentation

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

Microsoft PowerPoint - 06-Body Data Class.pptx

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

Slide 1

MFC 프로그래밍

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

PowerPoint Template

chap10.PDF

歯Lecture2.PDF

윤성우의 열혈 TCP/IP 소켓 프로그래밍

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

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

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

Microsoft Word - src.doc

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

슬라이드 1

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

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

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

MVVM 패턴의 이해

쉽게 풀어쓴 C 프로그래밍

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

Microsoft PowerPoint - 07-Data Manipulation.pptx

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Microsoft PowerPoint - CSharp-10-예외처리

어댑터뷰

BMP 파일 처리

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

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

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

<B9CCB5F0BEEE20C1A4BAB8C3B3B8AE2E687770>

Programming hwp

제11장 프로세스와 쓰레드

Convenience Timetable Design

1

PowerPoint Template

Microsoft PowerPoint - chap06-2pointer.ppt

슬라이드 1

Microsoft PowerPoint - Lect04.pptx

C++ 기본문법 정리

adfasdfasfdasfasfadf

C# Programming Guide - Types

오버라이딩 (Overriding)

Chapter 6 Objects and Classes

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

JVM 메모리구조

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

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint Presentation

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

,,,,,, (41) ( e f f e c t ), ( c u r r e n t ) ( p o t e n t i a l difference),, ( r e s i s t a n c e ) 2,,,,,,,, (41), (42) (42) ( 41) (Ohm s law),

untitled

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

PowerPoint 프레젠테이션

Microsoft PowerPoint - hci2-lecture9.ppt

Orcad Capture 9.x

chap 5: Trees

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

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

17장 클래스와 메소드

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

UI TASK & KEY EVENT

학습목표 메뉴를추가하는방법을이해하고실습할수있다. 프로그램의기본설정 (settings) 을정의하는방법을알고실습할수있다. 대화상자를여는방법을알고실습할수있다. 로그메시지로디버깅하는방법을이해한다. 디버거로디버깅하는방법을이해한다.

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

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

Transcription:

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

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

작성 Dialog 작성및사용방법 VC++ 의리소스편집기를사용하여 layout 구성 사용 *.rc 파일에저장 Control Notification ON_CONTROL, ON_BN_CLICKED, ON_EN_UPDATE() 등의 Message Map Entry Macro 사용 컨트롤에해당하는멤버변수 (Value Type or Control Type) 를만들고 DDX(DoDataExchange) 를통해동기화 m_name m_age Programming ( 사용 ) Layout ( 작성 ) Department of Computer Engineering 3

목표 MFC-SDI(Single Document Interface) 사용 Dialog 를통해이름과 Font 를입력받아서화면에출력 윈도우가가렸다가나타나도내용이지워지지않도록 Document 클래스사용과정 Dialog 생성 이름을입력받기위해 Control 들을화면에배치하여 Layout 구성 작성한 Dialog 를 Control 하기위한 CDialog 의파생 Class 생성및연결 Edit Control 의 Value Type Variable 생성 CDialog 의파생 Class 의 Member Variable 과연결 메뉴에서작성한 Dialog 를호출할수있도록메시지핸들러작성 Document Class 에입력받은이름을저장할수있는 Member Variable 생성및초기화 작성한 Dialog 의 header file 을 include 메뉴처리메시지핸들러에서 Dialog 변수생성 DoModal() 함수호출 Font 를위한 Common Dialog 를호출할수있도록메시지핸들러작성 Document Class 에입력받은 Font 와 Color 를저장할수있는 Member Variable 생성및초기화 Department of Computer Engineering 4

리소스추가 클릭 선택 선택 Department of Computer Engineering 5

Dialog 박스 Layout 구성 서식 탭순서 (ctrl + D) 변경 변경 Resource.h 변경 테스트 변경 Department of Computer Engineering 6

Dialog 클래스생성 다이얼로그를선택한후에프로젝트 클래스추가 바로나타나지않는다면왼쪽에있는범주를 MFC 로선택하고오른쪽템플릿에서 MFC 클래스선택후에추가버튼클릭 기본클래스를 CDialog 로선택하고대화상자 ID 선택 Dialog 의이름입력 여러개일경우선택가능 File 이새로생성되므로 Dialog 를사용하려면 Header File 을 Include 해야함 Department of Computer Engineering 7

Value Type 변수연결 2. Double Click 3. 오른쪽 Click 또는 ctrl+ Double Click 1. Resource Tab 4. 변수이름입력 (m_editname) 변경 Department of Computer Engineering 8

생성결과 Source File (NameDlg.cpp) Header File (NameDlg.h) Department of Computer Engineering 9

메뉴에추가 2. Insert 키 3. 입력 1. Double Click 5. 메뉴는 IDM_ 으로시작하는아이디부여 4. 뒤의 은 Dialog 가뜬다의미 Department of Computer Engineering 10

메뉴처리메시지핸들러생성 마우스오른쪽클릭 1. 오른쪽 Click 2. Document Class 선택 3. OK Department of Computer Engineering 11

메뉴처리메시지핸들러구현 Dialog 의 Header File 을 Include 해야함 Header File 을 Include 처리코드입력 에러발생!!! Department of Computer Engineering 12

Dialog 사용하기 이름저장을위한변수 이름반환함수 Dialog Box 표시 Document 에서데이터가변경되었으니 View 를다시그리시오. 초기화 1 주석으로되어있으면풀것 초기화 2 F5 눌러서실행 Department of Computer Engineering 13

Dialog 의 Value Type 멤버변수세팅 초기화부분변경, OnNewDocument() 도같이변경 현재의이름으로초기화 Department of Computer Engineering 14

폰트를위한메뉴추가 ( 속성편집창이용 ) 속성편집기 입력 Click View Class 입력 Department of Computer Engineering 15

View 클래스에서 Font 처리 안나타남 Department of Computer Engineering 16

Font 초기화처리 나타남 이전에선택했던것이보존되지않음 Department of Computer Engineering 17

Font Dialog 에서이전글꼴및색초기화 Department of Computer Engineering 18

Control 도 Window 기존버튼과다른동작을원한다면 CButton 의파생 Class 만들고 Function Overriding Message Map Handler 예제 : http://www.codeguru.com/cpp/controls/buttonctrl/ 발췌 : http://www.codeguru.com/cpp/controls/buttonctrl/advancedbuttons/article.php/c8395/ class CColorButton : public CButton { < 중략 > private: // Overrides // ClassWizard generated virtual function overrides public: virtual void DrawItem(LPDRAWITEMSTRUCT lpdrawitemstruct); // Generated message map functions protected: //{{AFX_MSG(CColorButton) afx_msg int OnCreate(LPCREATESTRUCT lpcreatestruct); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; Department of Computer Engineering 19

Control 도 Window DC 가지고있음 Control 도 Window F5 눌러서실행 Department of Computer Engineering 20

다이얼로그의투명도지정 OnInitDialog() 오버라이딩 Alpha 값지정 투명다이얼로그 Win98 이하동작하지않음 // CRadiusDlg 메시지처리기입니다. BOOL CRadiusDlg::OnInitDialog() { CDialog::OnInitDialog(); // 0 <= alpha <= 1 double alpha = 0.4; ModifyStyleEx(0, WS_EX_LAYERED); SetLayeredWindowAttributes(0, (int)(255. * alpha), LWA_ALPHA); } return TRUE; // return TRUE unless you set the focus to a control // 예외 : OCX 속성페이지는 FALSE 를반환해야합니다. Department of Computer Engineering 21

Dialog 에메뉴추가 다이얼로그메뉴 리소스뷰에서다이얼로그선택 속성에서 Menu 선택 Combo Box 눌러서메뉴선택 Department of Computer Engineering 22

다이얼로그리소스재사용 실행프로그램의 Resource 파일재사용 Drag & Drop 으로 Resource 에추가가능 Department of Computer Engineering 23

Modeless Dialog 사용하려는 Window에 Dialog의 Pointer를 Member Variable로선언 Class CMainFrame : public CFrameWnd { COpinionDlg *m_pdlg; } 동적으로할당하여사용 m_pdlg = new COpinionDlg; m_pdlg.create(idd_opinion); c.f.) Modal Dialog 는 local variable 생성 : Create() 화면출력 : ShowWindow() cf.) Modal Dialog 는 DoModal() 종료 : DestroyWindow() Department of Computer Engineering 24