윈도우시스템프로그래밍

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

윈도우시스템프로그래밍

윈도우시스템프로그래밍

윈도우시스템프로그래밍

<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>

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

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

untitled

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

5장 MFC기반 다지기

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

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

BMP 파일 처리

Smart Power Scope Release Informations.pages

Programming hwp

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

슬라이드 1

PowerPoint Template

PowerPoint Presentation

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

Visual C++의 개요

어댑터뷰

Microsoft PowerPoint - hci2-lecture6.ppt

歯Lecture2.PDF

Æí¶÷4-¼Ö·ç¼Çc03ÖÁ¾š

Microsoft PowerPoint - hci2-lecture10.ppt

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

오버라이딩 (Overriding)

PRO1_09E [읽기 전용]

Orcad Capture 9.x

Microsoft Word - src.doc

Microsoft PowerPoint - hci2-lecture6.ppt

chap 5: Trees

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

EndNote X2 초급 분당차병원도서실사서최근영 ( )

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

MFC 프로그래밍

PowerPoint Presentation

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

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

MF3010 MF Driver Installation Guide

C++ Programming

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

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

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

1

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

쉽게 풀어쓴 C 프로그래밍

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

서현수

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

UI VoC Process 안

MVVM 패턴의 이해

슬라이드 1

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

P/N: (Dec. 2003)

Windows 8에서 BioStar 1 설치하기

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

04장 메시지 처리 유형

Microsoft PowerPoint - e pptx

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

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

슬라이드 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

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

유니티 변수-함수.key

PowerPoint 프레젠테이션

Studuino소프트웨어 설치

슬라이드 1

Microsoft PowerPoint - web-part02-ch15-문서객체조작.pptx

설계란 무엇인가?

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

17장 클래스와 메소드

자바GUI실전프로그래밍2_장대원.PDF

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

슬라이드 1

MCM, PCB (mentor) : da& librarian jakup & package jakup & layout jakup & fablink jakup & Summary 2 / 66

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

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Mentor_PCB설계입문

Visual Basic 반복문

Microsoft PowerPoint - 07-Data Manipulation.pptx

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

Contents Activity Define Real s Activity Define Reports UI, and Storyboards Activity Refine System Architecture Activity Defin

Microsoft Word - hci08-final-answer.doc

슬라이드 1

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

Microsoft Word - Armjtag_문서1.doc

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

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

Microsoft PowerPoint - C++ 5 .pptx

Javascript

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

슬라이드 1

adfasdfasfdasfasfadf

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

1. SNS Topic 생성여기를클릭하여펼치기... Create Topic 실행 Topic Name, Display name 입력후 Create topic * Topic name : 특수문자는 hyphens( - ), underscores( _ ) 만허용한다. Topi

Endpoint Protector - Active Directory Deployment Guide

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

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

Transcription:

객체지향프로그래밍응용 Chap 5. 사용자인터페이스 (#1) 2012.10.11. 오병우 컴퓨터공학과금오공과대학교

Contents Menu ToolBar DialogBar StatusBar MessageBox Mouse Cursor Program Icon CFormView Department of Computer Engineering 2

응용프로그램의처리제어 종류 Main Menu Menu 개요 View 위에위치한메뉴표시줄 PopUp Menu: 평소에는보이지않음 DropDown Menu: Main Menu 를누르면나타남 Context Menu: 마우스오른쪽버튼클릭하면나타남 System Menu Window 의가장왼쪽위의아이콘클릭 (Dialog Menu) Dialog 도 Menu 가질수있음 Department of Computer Engineering 3

작성 사용 일반적인 Menu 작성및사용방법 VC++ 의리소스편집기를사용하여작성 ID 는주로 IDM_ 으로시작 String Table *.rc 파일에저장 Resource.h View Resource Symbols ON_COMMAND, ON_COMMAND_RANGE WM_COMMAND 메시지처리 Menu 실행처리 ON_UPDATE_COMMAND_UI, ON_UPDATE_COMMAND_UI_RANGE Callback 함수처리 BOOL CEx6App::InitInstance() { CSingleDocTemplate* pdoctemplate; pdoctemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CEx6Doc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CEx6View)); AddDocTemplate(pDocTemplate); 메뉴아이템이화면에나타나기직전에호출되어어떻게표시할지결정 메뉴의인터페이스처리 (Enable(), SetCheck(), SetRadio(), SetText()) e.g., CCmdUI::Enable(FALSE) } return TRUE; Department of Computer Engineering 4

Accelerator Hot-Key 설정 ID 선택 클릭 우측버튼클릭 클릭한후 Hotkey 입력 Department of Computer Engineering 5

Menu Resource 편집 1. 여기서 Insert 키누름 2. 배경색 (&B) 입력 3. 입력완료후 Enter 4. 빨간색 (&R) 입력 5. IDM_... 입력 6. Status Bar 에표시될내용입력 변경하면반영됨 Department of Computer Engineering 6

Seperator 삽입 1. 클릭 2. - 따라서바뀜 최종적으로는이렇게구성 Department of Computer Engineering 7

Accelerator 3. 콤보박스의버튼클릭 1. 더블클릭 2. 클릭 7. Ctrl 을누른상태에서 e (^e) 4. ID 선택 5. 마우스우측버튼클릭 3. 콤보박스의버튼클릭 4. ID 선택 6. 클릭 Department of Computer Engineering 8

Hot-key 를메뉴에반영 뒤에 \tctrl+e 추가 뒤에 \tctrl+e 추가 Department of Computer Engineering 9

View 영역색칠 Header File (Ex7View.h) Source File (Ex7View.cpp) 검은색 Color Reference Document Class 에서관리하는변수는 OnNewDocument() 에서초기화 변수만들면반드시생성자에서초기화!!! FillRect 함수는 SelectObject() 필요없음 ( 그러므로, SelectObject(oldBrush) 또는 SaveDC()/RestoreDC() 도필요없음 ) Department of Computer Engineering 10

Message Handler 등록 확인 확인 View Class 선택 클릭 클릭 Department of Computer Engineering 11

Message Handler Code 입력 F5 눌러서실행 색이바뀌지않음 (Resize 하면바뀜 ) Invalidate() 를해주어야다시그림 F5 눌러서실행 Department of Computer Engineering 12

직접코딩 CEx7View.h 의 Class Declaration 에함수원형입력 Return Type: void, 매개변수없음 CEx7View.cpp 파일 맨위의 Message Map 부분에추가 맨아래의 OnRed() Copy&Paste 후수정 F5 눌러서실행 가끔안되면 Build Rebuild All 수행 Department of Computer Engineering 13

Menu Item 의속성변경 ( 화면에표시될때호출됨 ) IDM_NONE 의비활성화 (F5 눌러서확인 ) 비활성화 UPDATE_COMMAND_UI 클릭 활성화 확인 확인 If 문처리해도되고 이렇게간단히도됨 Department of Computer Engineering 14

IDM_NONE 의 Message Handler 앞페이지의 UPDATE_COMMAND_UI 는메뉴를화면에표시할때만처리됨 Menu 가선택되었을때의동작은 COMMAND 처리해주어야함 COMMAND 클릭 확인 확인 F5 눌러서확인 Department of Computer Engineering 15

Resource.h 2. 더블클릭 1. 솔루션탐색기 Tab Department of Computer Engineering 16

ID 값변경 ( 계속 ) COMMAND_RANGE 또는 UPDATE_COMMAND_UI_RANGE 매크로를사용하려면 ID 들이연속된값이어야함 ( 순서중요 ) Department of Computer Engineering 17

UPDATE_COMMAND_UI_RANGE 는 Class Wizard 에서지원안됨 IDM_RED 에대한 UPDATE_COMMAND_UI 를 Class Wizard 를통해생성하고변경하는 3.UPDATE_ COMMAND _UI 선택 2. View Class 선택 1. 클릭 4.OK Department of Computer Engineering 18

IDM_RED 를위한 Callback 함수를 IDM_GREEN 및 IDM_BLUE 도처리할수있도록변경 Hea der File 변경전 Ex7View.h 변경후 함수이름변경 Sou rce File Ex7View.cpp IDM_RED 에서 IDM_BLUE 까지 Department of Computer Engineering 19

UPDATE_COMMAND_UI_RANGE 를위한 Callback 함수 메뉴를표시하기위해 3 번호출됨 IDM_RED, IDM_GREEN, IDM_BLUE 각각을표시하기위해호출됨 3개를한꺼번에처리하지않는다는것에주의할것 F5 눌러서실행확인 Department of Computer Engineering 20

WM_ERASEBKGND 화면의깜빡임제거 화면전체를다시그릴때유용함 추가 여기에서왼쪽버튼누르고마우스움직이면마구깜빡임 클릭 OnErase Bkgnd 가먼저실행됨 OnDraw 와 OnEraseBkgnd 에 Break Point (F9) 잡고실행 (F5) 아무것도하지않도록주석처리 Department of Computer Engineering 21

ToolBar 개요 메뉴의기능중자주사용되는것을버튼형태로만든것 모양은다르지만 ID 를 Menu 와같게지정하여동일한이벤트발생 CFrameWnd 의파생클래스 (AppWizard 는 CMainFrame 이라는이름으로만들어줌 ) 에서초기화 OnCreate() 작성 VC++ 의리소스편집기를사용하여작성 Tool Tip 문자열은 Prompt 에서 \n 뒤에지정 CreateEx() 또는 SetBarStyle() 에서 ToolBar 의스타일지정 CBRS_TOOLTIPS ( 툴팁 ), CBRS_FLYBY( 상태표시줄에문자열출력 ), etc. EnableDocking() 으로 ToolBar 를 Frame Window 에붙이는 Docking 지정 CBRS_ALIGN_TOP, CBRS_ALIGN_ANY, etc. 사용 ID 를 Menu 와일치시키기만하면자동으로메뉴에서연결한메시지핸들러함수호출됨 Department of Computer Engineering 22

ToolBar 편집 ToolBar 삭제할때는 Drag 상태에서도구모음밖에 Drop ^v 로그림판에서붙여넣을수있음 ComboBox 에서메뉴를위해만들어놓은 ID 선택 1. Drag 시작 2. Drop 색이제대로나오지않음 (16 색 ) 그림출처 : http://www.pokemon.com/ Status Bar 뒤에 ToolTip 을위해 \n 빨강 추가 Toolbar 에서 True Color 를사용하려면다음링크참조 http://www.codeproject.com/kb/toolbars/truecolortoolbar.aspx Department of Computer Engineering 23

ToolBar 에 Text 넣기 ToolBar 에 Text 넣기 CFrameWnd 의 OnCreate() Bitmap 크기 버튼크기 (Bitmap 크기보다크게 ) -Debug- Department of Computer Engineering 24

Summary Relationship Diagram for Menu Menu Resource 편집 & 문자 : Alt 와같이누르면선택 Caption에 \tctrl+ 문자 추가 Accelerator Hot-Key 지정 MFC Class CWinApp CWnd CFrameWnd IDR_MAINFRAME ToolBar ID 같게지정 Bitmap 추가 Inherit IDM_ 으로시작 IDM_RED Inherited Class IDM_NONE CMyApp CMainFrame Create Prompt: Status Bar \n 툴팁 Messages Connect (AppWizard) InitInstance() CMy (Document, View, Frame, App) (AppWizard) OnCreate() WM_COMMAND On_COMMAND(IDM_..., On ) On () UPDATE_COMMAND_UI Command Notification On_UPDATE_UI(IDM_..., OnUpdate ) OnUpdate (CCmdUI *) Enable, SetCheck, SetRadio, Department of Computer Engineering 25 SetText