컨트롤, 프로퍼티, 이벤트.

Slides:



Advertisements
Similar presentations
1 한국영상대학교 전자출결 시스템 모바일 기반 전자출결 시스템 한국영상대학교 출결관리 시스템 사용자 안내 하드웨어가 필요 없는 …
Advertisements

북한기도제목 1 월 1 주 (1/1-1/7). 1. 북한정치 - 북한의 대남정책 전반을 관장하는 김양건 북한 노동당 비서 겸 통일전선부장이 교통사 고로 지난 29 일 사망했다고 조선중앙통신이 30 일 보도했습니다. 한편 김양건 노동당 비 서의 죽음이 의도적인 암살 가능성이.
1 중부대학교 전자출결 시스템 중부대학교 출결 시스템 학생 안내 중부대학교 전자출결 시스템 1. 전자출결 App. 설치 하기 1-1. 안드로이드 용 설치 및 설정1 23 “Play 스토어”에서 “중부대학교 전자출결”검색 설치사이트 또는 QR 코드.
미디어 프로그래밍 II 소개.
프로젝트 보고서 학과 : 임학과 학번 : 성명 : 조성환 Windows 프로그래밍.
제 3 호 농촌 어메니티 관광개발 정보 -농어촌체험 ∙ 휴양마을 지정제도- 농 촌 진 흥 청 농촌자원과.
MB노믹스의 실패와 미래 22조 배주환 외 5명.
안 보여 줄끼가? 소프트웨어 프로젝트 1 – 제안서 발표 피바다 (A6)조 발표자 : 조기수.
2012년 12월 정기 제직회 기 도 : 김영민 집사 출 석 : 서 기 개회 선언 : 제직회장 (이태환 장로)
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷 MFC 응용 프로그램 마법사를 이용한 MFC 프로젝트 작성
감독관 사용설명서 프로메트릭 코리아 유한회사 Version 1.1.
Lab 6 Guide: 교재 14장 DLL 예제. Regular DLL 만들기 - 암시적 연결 ( 쪽) 명시적 연결 ( 쪽)
Visual C++ Programming Dialog Box
Visual C++ Programming Document/View Architecture 3
2014학년도 중학교 교육과정 편성시 유의사항 울산광역시교육청 교육과정운영과 한 상 철.
제 1 장 영상처리 기초.
다이얼로그 박스와 컨트롤 컴퓨터 계측 및 실습.
컴포넌트 (Component)
고급 컴퓨터 프로그래밍 팀명:지식인 팀원:홍광수 원대연 이소정.
SQL*Plus - Oracle ISQL -
Lab 3 Guide: 교재 4장 대화상자 예제. - 프로파일 입력 ( 쪽)
프로시저 와 인수전달 컴퓨터응용 및 실습 I.
누구나 쉽게 즐기는 C언어 콘서트 한남대학교 컴퓨터공학과 이 재 광 교수.
응용프로그램 예제 컴퓨터응용 및 실습 I.
Hello World Bot Framework
Traceroute 기능 분석 및 프로그래밍
Microsoft Visual C++ 제 1편 입문편 5장. 샘플 프로그램의 사용자화
6장 히스토그램 처리 차 례 히스토그램의 개요 히스토그램의 용도 영상 이치화 히스토그램 평활화 히스토그램 스트레칭
Visual C++ Programming Output and File
MFC UI for TS Analyzer 서울시립대학교 컴퓨터통계학과 최 용 진.
Visual C++ Programming Common Controls
대화상자 편집기의 사용법을 익힌다. 모드형 대화상자와 비 모드형 대화상자의 차이점을 이해하고 작성 방법을 익힌다.
<원광만세력> APP 사용설명서
영상처리 시작하기 & 영상처리 프로그램 만들기
Visual Basic 기초 1 목표: 컴퓨터기반제어에 관련된 학습을 하기 전에 Visual Basic의 기초를 살펴본다.
Right Now 담당 교수 : 문양세 교수님 팀 원 : 김원모(팀장) 우덕령, 김승선, 김종원, 문경민
Visual Studio 2010 프로젝트 생성하기 PC화면에서 Visual Studio 2010 아이콘을 더블클릭 하거나
[Homework #2] Chapter 5 Chapter 6 Page 110, 문제 13 – 피라미드 높이 구하는 문제
Bot Framework Hello World Bot과 Telegram에서 대화 하기
기업지원 제도 주요 내용 안산고용센터 기업지원팀.
제주닷컴 매뉴얼 (실시간 예약시스템) 2013년 10월.
컴퓨터 비전.
타대학 학점인정 신청 매뉴얼 ○포털시스템에 접속하여 로그인.
스마트폰 전자신고 방법 국세청 모바일 통합 앱 다운로드(갤럭시S) 가. 교재 15~19페이지
SystemC 설치 (Visual Studio 2010)
계명대학교 전자출결시스템 사용자 안내(학생용)
목포대학교 출결 시스템 학생 안내
Appendix A 구조적 시스템 개발 방법론.
안드로이드 UCheckPlus 학생용 App 출석체크 간편 매뉴얼
MAIL CLIENT 김창우 윤성훈 이경재.
ODBC &DAO 안명상.
알쏭달쏭 요한복음 성경퀴즈.
Lab 9 Guide: 인터넷 프로그래밍 예제 * 일대일 채팅 프로그램 (교재 27장, 쪽)
이행점검/현장점검관리.
Video For Windows 멀티미디어 공학 이 정 우.
나는 땅에서 키는 작지만 하늘로부터 재는 키는 이 세상 어느 누구보다도 크다
Music Robot #Define A+(12-15조) 팀원: 05학번 양현철 , 김 청 07학번 예강훈 , 김한수
OpenGL Project.
제 7장 이벤트.
04장 ㅎㅎ 화소점 처리 화소 점 처리의 개념 디지털 영상의 산술연산과 논리연산 디지털 영상의 다양한 화소 점 처리 기법
천국 가는 길 천국 가는 길 ♧ 천국 가는 길 ♧ 1. 죄와 사망(지옥) 1) 사람의 3가지 공통점 - 죄인, 죽음, 심판
떠나자! 우주로 환영합니다 경상남도사천교육청영재교육원 안녕하십니까? 지금부터 대구광역시 교육과학연구원 발명교육센터 개관에 따른
제안 제도 운영방안.
2장 첫 번째 응용 프로그램 작성
웹메일 사용자 매뉴얼
원도우 네트워크 프로그래밍 (TCP/IP 소켓 프로그래밍)
용인송담대학교 LMS (교수모드) Version 1.0.
HDD Error시 교체 -> Windows 재 설치 Check to data base Error
컴퓨터 프로그래밍 언어 Visual Basic 6.0 √ 원리를 알면 VB가 쉽다.
제 4장 Visual C++ COM 컴파일러.
Presentation transcript:

컨트롤, 프로퍼티, 이벤트

강의 내용 포인터(pointer) 복습 컨트롤, 프로퍼티(=속성), 이벤트 MFC 프로그래밍 실습

포인터 복습 - 포인터가 아니었다면?? OnDraw(CDC* pDC)가 아니라 OnDraw(CDC DC)라면? OS는 DC 원본의 열쇠(포인터 = 주소)만 함수에 넘겨 주는 것이 아니라 DC의 복사본을 하나 더 만든 다음 그 복사본의 열쇠를 넘겨 줌 따라서 불필요한 메모리를 차지하게 됨

실습 2 : 컨트롤, 프로퍼티, 이벤트 1단계 : Visual C++ 시작

실습 2 : 컨트롤, 프로퍼티, 이벤트 2단계 : 프로젝트 만들기 파일(F) > 새로 만들기(N) > 프로젝트(P)…

실습 2 : 컨트롤, 프로퍼티, 이벤트 2단계 : 프로젝트 만들기 새 프로젝트 창에서 1. “프로젝트 형식(P)”에서 MFC 선택 2. “Visual Studio에 설치되어 있는 템플릿”에서 MFC 응용 프로그램 선택 3. “위치(L):”에서 가장 오른쪽 찾아보기(B)… 클릭해서 작업할 디렉터리 찾기 4. “이름(N)”에서 프로젝트 이름 입력 : “ControlPropertyEvent_(자신의 이름)” 5. 확인 단추 클릭

실습 2 : 컨트롤, 프로퍼티, 이벤트 3단계 : 응용 프로그램 마법사 응용 프로그램 마법사 창 오른쪽에서 응용 프로그램 종류 선택

실습 2 : 컨트롤, 프로퍼티, 이벤트 3단계 : 응용 프로그램 마법사 응용 프로그램 종류:에서 다중 문서(M)을 대화상자기반(D)로 변경 아래에서 다음> 단추 클릭

실습 2 : 컨트롤, 프로퍼티, 이벤트 3단계 : 응용 프로그램 마법사 주 프레임 스타일:에서 최소화 상자와 최대화 상자 선택 아래에서 다음> 단추 클릭

실습 2 : 컨트롤, 프로퍼티, 이벤트 3단계 : 응용 프로그램 마법사 이 상태 그래도 아래에서 다음> 단추 클릭

실습 2 : 컨트롤, 프로퍼티, 이벤트 3단계 : 응용 프로그램 마법사 생성된 클래스에서 **App와 **Dlg 두 개 확인 아래에서 마침 단추 클릭

실습 2 : 컨트롤, 프로퍼티, 이벤트 4단계 : 완료. 다시 Visual Studio로 돌아온 화면

실습 2 : 컨트롤, 프로퍼티, 이벤트 5단계 : 테스트를 위해 컴파일 (CTRL+F5) 결과 화면

실습 2 : 컨트롤, 프로퍼티, 이벤트 참고 – 세 가지 MFC 창 형태 단일 문서 인터페이스 대화상자 (SDI) 다중 문서 인터페이스 (MDI)

시각 요소 설계 리소스 뷰 선택 OR

시각 요소 설계 리소스 뷰에서 + 단추를 계속 클릭해서 Dialog 항목 왼쪽의 + 단추를 클릭 IDD_CONTROLPROPERTYEVENT__DIALOG 클릭 IDD_CONTROLPROPERTYEVENT__DIALOG은 우리가 만들 대화상자의 이름

시각 요소 설계 정적 텍스트 (“TODO: 여기에…. “), 확인, 취소 단추를 지움 (클릭 한 다음 DEL 키 눌러서)

시각 요소 설계 먼저 크기 조정… (왼쪽 아래 컨트롤 포인트 클릭 후 끌어서 이동)

시각 요소 설계 도구 상자 표시 및 고정하기

시각 요소 설계 그룹 박스 선택 및 그리기 (클릭 후 끌어서 사각형 형태로) 그룹 박스는 컨트롤을 구분해 주는 역할 그리기 후 그룹 박스를 선택한 상태에서 마우스 오른쪽 단추를 클릭한 후 ‘속성’ 선택 Caption에서 “Static”을 자기 이름으로 변경

시각 요소 설계 도구 상자에서 Edit Control을 클릭한 후 오른쪽 처럼 클릭 후 끌어서 위치시킴 도구 상자에서 Check Box를 클릭한 다음 가운데 그림처럼 두 개를 만들어 줌 Check1을 클릭한 다음 마우스 오른쪽 단추를 클릭하고 속성을 선택해서 오른쪽에 속성 패널을 열고 Caption에서 “Check1” 대신 “Visi&ble”을 입력 마찬가지로 Check2를 클릭한 후에 “Check2” 대신 “&Enabled” 입력

시각 요소 설계 도구 상자에서 Button Control을 클릭한 후 오른쪽 처럼 클릭 후 끌어서 위치시킴 그림 처럼 단추 세 개 생성 각 단추를 클릭하고 이전 처럼 마우스 오른쪽 단추를 클릭한 후에 ‘속성’을 클릭한 다음 (이미 오른쪽에 속성 패널이 열려 있다면 자동으로 해당 컨트롤에 대한 속성으로 변환) Caption에서 “Button1” -> “&Test”, “Button2” -> “&Clear”, “Button3” - > “E&xit”로 변경

시각 요소 설계 CTRL+F5를 눌러서 컴파일 후 실행 이 때 단추를 누를 수 있고 Edit Control 안에 문자를 입력할 수는 있지만 어떤 반응도 나타나지 않음 단축키 기능: 포커스(이 때는 커서)를 Edit Control에서 다른 곳으로 옮기기 위해 빨간 원으로 표시된 부분을 마우스로 한 번 클릭한 다음 키보드에서 b를 눌러 보고 또 E를 눌러서 확인

각 컨트롤에 변수 연결 이제 해야 할 일은 원하는 작업을 수행하기 위해 각 컨트롤(단추, 에디트 컨트롤 등)에 변수를 연결해야 하는 작업. 프로젝트 > 변수 추가(C)… 클릭 변수 추가 마법사 창이 나타남 이 때 ‘컨트롤 변수’ 선택 컨트롤 ID 드롭다운 목록에서는 지금까지 만든 컨트롤 ID가 나타남 다른 컨트롤 ID를 선택할 때마다 왼쪽의 변수 형식과 오른쪽의 컨트롤 형식이 변경됨

체크 상자에 BOOL 변수 연결 왼쪽에서 리소스 뷰 탭 클릭 리소스 뷰에서 + 단추를 계속 클릭해서 Dialog 항목 왼쪽의 + 단추를 클릭 IDD_CONTROLPROPERTYEVENT__DIALOG 클릭 다시 프로젝트 > 변수 추가(C)… 클릭 컨트롤 ID를 IDC_CHECK1으로 변경 범주를 Value로 변경 이 때 ‘변수 형식’을 BOOL로 전환 변수 이름에 m_VisibleCheck입력 그 다음 컨트롤 ID를 IDC_CHECK2로 변경 변수 이름에 m_EnabledCheck입력

Edit Control에 CString 변수 연결 컨트롤 ID를 IDC_EDIT1으로 변경 범주를 Value로 변경 이 때 ‘변수 형식’은 자동으로 CString으로 전환 변수 이름에 m_TestEdit입력 마침 클릭

소스 코드에서 확인 생성한 변수는 어디에?? 솔루션 탐색기 탭 클릭 헤더 파일 중 ControlPropertyEvent_(이름)Dlg.h 클릭 오른쪽 창에서 아래로 스크롤 해서 public: 다음 방금 입력한 변수들 확인

변수의 의미 이렇게 생성된 변수는 각 컨트롤과 연결 Edit control은 m_TestEdit 변수를 통해 텍스트를 입력 또는 출력 Visible 체크 상자의 상태(true/false)는 바로 m_VisibleCheck에 전달

초기화 코드 생성 경우에 따라 컨트롤들이 어떤 특정한 값으로 미리 설정되어야 하는 필요 발생 ControlPropertyEvent_(이름)Dlg.cpp에서 OnInitDialog()를 찾아서 아래와 같이 초기값 입력 UpdateData(FALSE); // 각 변수의 현재값을 컨트롤로 보냄

초기화 코드 생성 CTRL+F5 결과

Exit 단추 클릭 시 종료 코드 작성 다시 리소스 뷰 탭을 클릭해서 돌아 간 후 Exit 단추를 마우스 오른쪽 단추로 클릭한 다음 이벤트 처리기 추가 이벤트는 사용자가 컨트롤을 작동시켰을 때 OS에게 전달하는 메시지 아래 이벤트 처리기 마법사에서 추가 및 편집 클릭

Exit 단추 클릭 시 종료 코드 작성 자동으로 소스 코드 편집기로 이동 OnBnClickedButton3() 함수가 자동으로 추가된 상황을 볼 수 있음 사용자가 Exit 단추를 클릭할 때마다 이벤트가 생성되고 OS에 전달되며 OS는 그 때마다 이 함수를 실행 // TODO:… 아래에 OnOK(); 입력 CTRL+F5 눌러서 컴파일, 실행 후 Exit 단추 클릭 창이 닫히면 성공

Test 단추 클릭 시 문자열 출력 다시 리소스 뷰 탭을 클릭해서 돌아 간 후 Test 단추를 마우스 오른쪽 단추로 클릭한 다음 이벤트 처리기 추가 아래 이벤트 처리기 마법사에서 추가 및 편집 클릭

Test 단추 클릭 시 문자열 출력 자동으로 소스 코드 편집기로 이동 OnBnClickedButton1() 함수가 자동으로 추가된 상황을 볼 수 있음 사용자가 Test단추를 클릭할 때마다 이벤트가 생성되고 OS에 전달되며 OS는 그 때마다 이 함수를 실행 // TODO:… 아래에 다음과 같이 입력 CTRL+F5 눌러서 컴파일, 실행 후 Test 단추 클릭 입력한 텍스트가 에디트 컨트롤에 표시되면 성공

Clear 단추 클릭 시 문자열 삭제 다시 리소스 뷰 탭을 클릭해서 돌아 간 후 Clear 단추를 마우스 오른쪽 단추로 클릭한 다음 이벤트 처리기 추가 이벤트 처리기 마법사에서 추가 및 편집 클릭 그림 처럼 코드 입력 CTRL+F5 -> Test 단추 클릭 후 Clear 단추 클릭

Visible 체크 상자 클릭 시 작동 Visible 체크 상자 마우스 오른쪽 단추 클릭 이벤트 처리기 추가 클릭 아래 이벤트 처리기 마법사에서 추가 및 편집 클릭

Visible 체크 상자 클릭 시 작동 OnBnClickedCheck1() 함수가 자동으로 추가된 상황을 볼 수 있음 역시 자동으로 소스 코드 편집기로 이동 OnBnClickedCheck1() 함수가 자동으로 추가된 상황을 볼 수 있음 사용자가 Visible 체크 상자를 클릭할 때마다 이벤트가 생성되고 OS에 전달되며 OS는 그 때마다 이 함수를 실행 // TODO:… 아래에 다음과 같이 입력 CTRL+F5 눌러서 컴파일, 실행 후 Visible 체크 상자 클릭 입력한 텍스트가 에디트 컨트롤에 표시되면 성공 IDC_EDIT1 : 앞에서 만든 Edit Control의 이름. 오른쪽 아래 속성 패널에서 확인 가능

Visible 체크 상자 클릭 시 작동 UpdateData(FALSE); 변수(소스 코드) -> 컨트롤(화면에 표시) UpdateData(TRUE); 변수 (소스 코드) <- 컨트롤 (화면에 표시)

Enabled체크 상자 클릭 시 작동 Enabled 체크 상자 마우스 오른쪽 단추 클릭 이벤트 처리기 추가 클릭 아래 이벤트 처리기 마법사에서 추가 및 편집 클릭 소스 코드 입력 CTRL+F5 Enabled 체크 상자 클릭해서 확인

작성한 소스 코드 제출 방법 파일 > 솔루션 닫기. 모두 저장 작업한 폴더를 찾아서 압축 생성한 zip 파일을 더블 클릭해서 들어 간 다음 zip 파일 내의 Debug와 Release 폴더 모두 제거(이 폴더는 그 아래 폴더에도 있을 수도 있음. 모두 삭제) 이렇게 지운 후에도 아직 zip 파일 크기가 10MB 이상이라면 다시 전체 zip 파일 내에서 Debug와 Release 폴더 삭제 그 후 zip 파일 제출 (교육 포털 -> 학생 자료실??)