분할 윈도, 다중 뷰… 영상 통신 연구실 권 동 진 발표 일 : 04월 27일.

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

데이터 완전삭제프로그램 Perfect Delete 사용설명서  주의 이 프로그램을 이용하여 삭제된 데이터는 어떠한 방법으 로도 복구가 불가능합니다. 그러므로 실제 데이터 삭제시 신중을 기하기 바랍니다.
Visual C++ 구성. DevStudio –Visual C++ 를 실행시키면 전면에 뜨는 프로그램. – 텍스트에디터, 리소스에디터, 디버거 등 모든 기능 총괄 MFC(Microsoft Foundation Class) – 윈도우 프로그램을 만드는데 필요한 거의 모든.
Message Process for SDI Chung-Buk HRD Institute of KCCI Dept. of Information & Communication PhD. Kang, Won-Chan.
1 컴퓨터정보과 MFC 의 개요 MFC 윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리 애플리케이션 프레임워크를 제공 MFC 의 이점 윈도우 프로그램 전문가로 만들어 준다. 개발시간을 단축시키고, 이식성이 강한 코드를 작성 ActiveX, OLE,
MFC의 개요 MFC MFC의 이점 윈도우 애플리케이션을 생성하기 위해 만들어진 C++ 클래스 라이브러리
Visual C++ Programming Document/View Architecture Department of Digital Contents Sang Il Park.
프로젝트 보고서 학과 : 임학과 학번 : 성명 : 조성환 Windows 프로그래밍.
Visual C++ Programming Document/View Architecture
컴퓨터 공학 설계 및 실험 I MFC programming
메뉴 용어 (1/6) 최상위 메뉴 = 메뉴 바 최상위 메뉴 = 메뉴 바.
윈도우 프로그래밍 실습 김 창 헌.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷 MFC 응용 프로그램 마법사를 이용한 MFC 프로젝트 작성
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷
01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
MFC Application Frameworks (AFX)
Lecture 2 MFC and Application Frameworks
Visual C++ Programming Dialog Box
Lab 10 Guide: 프린터 출력 예제. 한 페이지의 그림 인쇄 (교재 24장, 쪽)
Chapter 1 윈도우 프로그래밍 들어가기 윈도우 응용 프로그램을 작성하기 위해 필요한 기본 개념을 정립하고 Visual Studio를 설치한 후 MFC 응용 프로그램 마법사를 사용하여 MFC 프로그램을 작성하는 방법을 학습한다.
Visual C++ Programming Document/View Architecture 3
제 1 장 영상처리 기초.
Lab 3 Guide: 교재 4장 대화상자 예제. - 프로파일 입력 ( 쪽)
윤 홍 란 다이알로그(대화상자) 윤 홍 란
MFC를 이용한 네트워크게임 졸업 프로젝트 담당 교수 : 김재형 교수님 김 성준 김 민기.
MFC 발전 과정과 주요 특징을 개괄적으로 이해한다.
Department of Digital Contents Sang Il Park
윤 홍 란 MFC 기초 윤 홍 란
Lab 2 Guide: 교재 3장 그래픽 예제 ( 쪽) - 펜과 브러시로 그리기 - 튀는 공
제 7 장 동영상 처리.
7장 배열 ②.
Network Socket Programming
CH 1. MFC 전체보기 정보통신공학과 안 재 형.
MFC Application Frameworks (AFX)
Visual C++ Programming Common Controls
Visual C++ Programming Common Controls
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
정적 멤버 변수/정적 멤버 함수 - friend 함수/클래스 template
03장 영상처리를 위한 Visual C++ 디지털 영상 파일 포맷
13. 연산자 오버로딩.
4. 대화상자와 Resource 최 영 석.
영상처리 실습 인공지능연구실.
Lesson 2. 기본 데이터형.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
OPENCV를 이용한 이미지처리 정은일 멀티미디어설계
ODBC &DAO 안명상.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
JA A V W. 06.
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
12. 상속 : 고급.
사업계획서.
객체기반 SW설계 팀활동지 4.
SelfShopping ProJect.
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
가장 많이 사용 Accelerator 최상위 WM_COMMAND, OLE 메시지 관련 이벤트 처리만 가능 이 클래스를 상속받아서 다른 이벤트 처리 이벤트 처리 관련 윈도우(창) 최상위 클래스 멀티 테스킹(모듈) CFrameWnd, Cview,
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
04장 ㅎㅎ 화소점 처리 화소 점 처리의 개념 디지털 영상의 산술연산과 논리연산 디지털 영상의 다양한 화소 점 처리 기법
구조체(struct)와 공용체(union)
실습 UBLAB.
엔코더 프로그램 설명 // 쓰레드를 사용하기 때문에 변수와 핸들을 전역변수로 지정 HANDLE hDevice;
29장. 템플릿과 STL 01_ 템플릿 02_ STL.
일반대학원 사용자 매뉴얼(학생)
MFC 응용 프로그램 구조 두 개의 윈도우로 구성된 일반적인 MFC 프로그램 프레임 윈도우
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
MFC 기초 윈도우 응용프로그램 개발 간략한 역사 Microsoft Foundation Classes
Presentation transcript:

분할 윈도, 다중 뷰… 영상 통신 연구실 권 동 진 발표 일 : 04월 27일

contents 분할 윈도 다중 뷰

자기 위에 두개 이상의 view를 생성시키고 분할 바를 이용하여 뷰의 크기 조절 분할 윈도 (1/11) 프레임윈도우 분할윈도우 자기 위에 두개 이상의 view를 생성시키고 분할 바를 이용하여 뷰의 크기 조절 CSplitterWnd 클래스 뷰 윈도우 뷰 윈도우 분할 바 프레임 윈도, 분할 윈도, 뷰 윈도의 관계

분할 윈도 (2/11) 분할 윈도 설정 ExSpliterWnd (1/3) AppWizard  Step 4/6 Advanced (Window Styles: Use split window) Click!

분할 윈도 (3/11) 분할 윈도 설정 ExSpliterWnd (2/3)

분할 윈도 (4/11) 분할 윈도 설정 ExSpliterWnd (3/3) 자동으로 생성된 CMainFrame Code MainFrame.h 분할 윈도우를 생성할 윈도우의 포인터 MainFrame 포인터 MainFrame.cpp

분할 윈도 (5/11) 정적 분할 윈도 (Static Split Window) (1/2) CSplitterWnd 클래스의 멤버 함수인 CreateStatic 함수 이용 CreateStatic을 이용하여 가로로 두 개의 분할 윈도 생성 CSplitterWnd::CreateStatic BOOL CreateStatic( CWnd* pParentWnd, // 부모 윈도 핸들 Int nRows, // 세로칸 Int nCols, // 가로칸 DWORD dwStyle = WS_CHILD | WS_VISIBLE, // 윈도 스타일 UINT nID = AFX_IDW_PANE_FIRST // 분할 윈도 ID ); m_WndSplitter.CreateStatic(this, 1, 2); // 정적으로만 분할

분할 윈도 (6/11) 정적 분할 윈도 (Static Split Window) (2/2) 분할 윈도에 특정 윈도를 설정하기 위해 CreateView 함수 사용 CExStaticSplitView 클래스를 현재 분할된 윈도 좌측에 설정하는 방법 CSplitterWnd::CreateView virtual BOOL CreateView(int row, int col, CRuntimeClass* pViewClass, SIZE sizelnit, CCreateContext* pContext); m_wndSplitter.CreateView(0,1, RUNTIME_CLASS(CExStaticSplitView), CSIZE(100, 100), pContext);

분할 윈도 (7/11) 정적 분할 윈도 예제 ExStaticSplit 1) FormView 형태의 CAnotherView 만든다. BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext { 2) m_wndSplitter.CreateStatic(this,1,2); 3) m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CExStaticSplitView), Csize(100,100),pContext); 4) m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CAnotherView), Csize(160,100),pContext); return TRUE; }

분할 윈도 (8/11) 분할 윈도의 각 View 윈도 클래스 접근 ExStaticSplit에서 CFormView나 CView 윈도를 얻고자 할 때 1) CDocument pDoc=AfxGetMainWnd()->GetActiveDocument(); 2) POSITION pos=pDoc->GetFirstViewPosition; 3) Cview *pView=pDoc->GetNextView(pos); 4) CFormView *pView2=pDoc->GetNextView(pos);

분할 윈도 (9/11) View 윈도 클래스 접근 예제 ExSplitCont (1/3)

분할 윈도 (10/11) View 윈도 클래스 접근 예제 ExSplitCont (2/3) SetTimer(1,500,NULL); 5) 6) 7) 1) class CExSplitContView : public Cview//m_nNum=1 8) 2) class CAnotherView1 : public Cview//m_nNum=2 3) class CAnotherView2 : public Cview//m_nNum=3 9) 4) class CAnotherView2 : public Cview//m_nNum=4 10)

분할 윈도 (11/11) View 윈도 클래스 접근 예제 ExSplitCont (3/3) // 1)번 분할 윈도에 출력할 View의 OnDraw void CExSplitContView::OnDraw(CDC* pDC) { CExSplitContView* pDoc=GetDocument(); ASSERT_VALID(pDoc); Cstring date=“main”; pDC->TextOut(0,0,date); } // 2)번 분할 윈도에 출력할 View의 OnDraw void CAnotherView1::OnDraw(CDC* pDC) CDoument* pDoc= GetDocument(); //TODO: add draw code here Cstring date=“View1”; // 3)번, 4번 분할 윈도에 출력할 View의 OnDraw void CAnotherView2::OnDraw(CDC* pDC) Cstring date=“View2”;

다중 View (1/2) 다중 View 만들기 2) //메인뷰를 활성화 한다. SetActiveView(m_pMainView); //OtherView를 감춘다. m_pOtherView->ShowWindow(SW_HIDE); //메인 View를 보여준다. m_pMainView->ShowWindow(SW_SHOW); //메인 View를 첫번째 윈도우로 설정한다. m_pMainView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); RecalcLayout(); 1) 다른 view 만들기 //OtherView를 만들고 4) m_pOtherView=new CAnotherView; CCreateContext context; //현재 View의 도큐먼트를 받는다. 5) context.m_pCurrentDoc=m_pMainView->GetDocument(); //View를 만든다. m_potherView->Create(NULL,NULL,0L,CFrameWnd:: rectDefault,this,2,&context); //화면에 업데이트 한다. m_pOtherView->OnInitialUpdate() 3) //OtherView를 활성화 시킨다. SetActiveView(m_pOtherView); //OtherView를 보여준다. m_pOtherView->ShowWindow(SW_SHOW); //메인 View를 감춘다. m_pMainView->ShowWindow(SW_HIDE); //OtherView를 첫번째 PANE로 설정한다. 6) m_pOtherView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); RecalcLayout();

다중 View (2/2) 다중 View 예제 ExMultiView (1/2) 2) CView 항목을 선택하면 (ID:ID_ANOTHERVIEW) CMainFrame의 OnAnotherview()가 실행되며 이 함수에 새로운 View가 만들어지지 않았으면 만든 다.( 과정 1) ) 만일 View가 만들어졌다면 단순 하게 새로 만든 View를 화면에 출력한다. (  과정 3) ) 1) CFormView 메뉴를 선택하면 (ID:ID_MAINVIEW) CMainFrame의 OnMainview()가 실행되고, 이 함 에서는 기본적으로 설정된 View가 화면에 출력된 다.  과정 2)

다중 View (2/2) 다중 View 예제 ExMultiView (2/2) 헤더에 두개의 변수 설정 과정 2) void CMainFrame::OnAnotherview() { //현재 활성화 되어있는 View가 메인 View이므로 //m_pMainView에 설정한다. m_pMainView =(CExMultiViewView *) GetActiveView(); //OtherView가 만들어 지지 않았다면 if (m_pOtherView == NULL) //OtherView를 만들고 m_pOtherView = new CAnotherView; CCreateContext context; //현재View의 토큐먼트를 받는다. context.m_pCurrentDoc = m_pMainView->GetDocument(); //View를 만든다. m_pOtherView->Create(NULL, NULL, 0L, CFrameWnd::rectDefault, this, 2, &context); //화면에 업데이트한다. m_pOtherView->OnInitialUpdate(); } //OtherView를 활성화 시킨다. SetActiveView(m_pOtherView); //OtherView를 보여준다. m_pOtherView->ShowWindow(SW_SHOW); //메인 View를 감춘다. m_pMainView->ShowWindow(SW_HIDE); //OhterView를 첫번째 PANE로 설정한다. m_pOtherView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); RecalcLayout(); CExMultiViewView *m_pMainView; CAnotherView *m_pOtherView; m_pOtherView=NULL; 과정 1) void CMainFrame::OnMainview() { //메인뷰를 활성화 한다. SetActiveView(m_pMainView); //OtherView를 감춘다. m_pOtherView->ShowWindow(SW_HIDE); //메인 View를 보여준다. m_pMainView->ShowWindow(SW_SHOW); //메인 View를 첫번째 윈도우로 설정한다. m_pMainView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); RecalcLayout(); }