SlideShare uma empresa Scribd logo
1 de 64
MFC를 이용한 쉽고 빠른Windows 7 기능활용 NC Soft 최 성 기 florist.sk@gmail.com http://vsts2010.net
Agenda Why MFC? Windows 7 Programming with MFC ,[object Object]
Multi touch ProgrammingMFC in VS2010
MFC를 눈여겨볼 필요가 있는 세 가지 이유 다시 시작된 다양한 API의 추가 우리는 이미 MFC를 익혀 두었다. 쉽고, 빠르다. 투자 대비 높은 효율 Visual Studio 2010 C++ / MFC 3
Ribbon Style Interface
Windows 7 style Ribbon Visual Studio 2010 C++ / MFC 5
Visual Manager Visual Studio Office 2003 Visual Studio 2005 Office 2007 Office 2007 Black
Visual Studio 2005 Style Smart Docking
Tabbed MDI MDI Tabbed Group  MDI Tabbed Standard MDI Tabbed Standard + Auto-Color
Full Customizable ToolBar, MenuBar
Other New Features New Dialogs Color Picker Bitmap Editor Etc… Desktop Alert Window New Controls Advanced Button Shell Tree and List Mask edit Property List
MFC ClassWizard (vc++ 6.0) Visual Studio 2010 C++ / MFC 11
Ctrl + Shift + X ! Visual Studio 2010 C++ / MFC 12
Visual Studio 2010 C++ / MFC 13 MFC를 써서 Windows 7 기능을 넣고 나면XP에서는 안돌아가는 건가요?  기존 프로젝트에서 vs2010 MFC 프로젝트로 migration할 때 발생하는 문제점은 없나요? 아니요. GetVersionEx( … ), VerifyVersionInfo( … ) 등 MFC 기능 내에서는 큰 문제 없을 듯.
Windows 7 Programming With MFC Visual Studio 2010 C++ / MFC 14
Take Advantage of Multi-touch Build User Interfaces with the Ribbon Use Jumpliststo Simplify Navigation
Taskbar Overlay Icon ProgressBar JumpList Thumbnail Preview Thumbnail Toolbar Multi Touch 멀티터치를 적용하는 3단계 방법. Visual Studio 2010 C++ / MFC 16
Windows 7 Taskbar Visual Studio 2010 C++ / MFC 17 Multiple windows and hover Running Not running Active
Visual Studio 2010 C++ / MFC 18 Overlay Icon & Progressbar
CFrameWnd* mainfrm = … mainFrm->SetTaskbarOverlayIcon( IDI_ICON_INFO, L“INFO” ); Visual Studio 2010 C++ / MFC 19
CFrameWnd * mainfrm = … mainFrm->SetProgressBarPosition( nValue ); mainFrm->SetProgressBarState( TBPF_ERROR ); Visual Studio 2010 C++ / MFC 20
Visual Studio 2010 C++ / MFC 21 Jump List IE 8.0 Live Messenger
Jump ListsA detailed look Pinned category Destinations (“nouns”) Known categories Custom categories User tasks Tasks (“verbs”) Taskbar tasks
Jump list Visual Studio 2010 C++ / MFC 23 마우스로 띄울 때 터치로 띄울 때
Jump list in Start Menu Visual Studio 2010 C++ / MFC 24
class CJumpList Visual Studio 2010 C++ / MFC 25 CJumpListm_jumpList; m_jumpList.AddKnownCategory(KDC_FREQUENT); m_jumpList.AddKnownCategory(KDC_RECENT); m_jumpList.AddDestination( strCategoryName, strFilePath ); m_jumpList.AddTask( strExePath, strArgs, strTitle, strIconPath, iIconIndex ); m_jumpList.AddTaskSaparator(); m_jumpList.CommitList();
Taskbar Features :    Overlay Icon    Progress bar    Jump list Demo
Thumbnail Preview Visual Studio 2010 C++ / MFC 27 - Tabbed Thumbnails (MDI Windows)
코딩 없이 그냥 드려요. Visual Studio 2010 C++ / MFC 28 vs2008 vs2010
thumbnail에 임의 기능 추가하기 Visual Studio 2010 C++ / MFC 29 프로필 이미지 Live Messenger
Windows Shell Programming (win32) Visual Studio 2010 C++ / MFC 30 ITaskbarList4 windows shell interface http://msdn.microsoft.com/en-us/library/dd562040(VS.85).aspx
Thumbnail Toolbars Visual Studio 2010 C++ / MFC 31 최대 7개 버튼 추가 가능 런타임에 수정될 수는 없음. Media player iTunes
Visual Studio 2010 C++ / MFC 32 ITaskbarList3::ThumbBarAddButtons() ITaskbarList3 windows shell interface http://msdn.microsoft.com/en-us/library/dd391692(v=VS.85).aspx
Taskbar Fretures :    Thumbnail Preview   Thumbnail Toolbars Demo
Multi-Touch ProgrammingWith MFC Visual Studio 2010 C++ / MFC 34 이미지 출처 : http://farm3.static.flickr.com/2152/2547399057_f91154cb87_o.jpg
하드웨어 에뮬레이터 http://multitouchvista.codeplex.com/  멀티터치 인식 드라이버 (오픈소스)
멀티 터치를 적용하는 3단계 Visual Studio 2010 C++ / MFC 36 1 2 3
WM_GESTURE의 9가지 제스처 http://msdn.microsoft.com/en-us/library/dd940543(VS.85).aspx
GetSystemMetrics() SM_DIGITIZER : 입력장치 상태 확인 SM_TABLETPC : 타블렛pc 여부 확인 SM_MAXIMUMTOUCHES : 최대 동시입력 개수
WM_GESTURE ( Win32 API )
WM_GESTURE ( MFC ) Visual Studio 2010 C++ / MFC 40 class CWnd {     void OnTabletQuerySystemGestureStatus ( WPARAM wParam, LPARAM lParam );     void OnGesture ( WPARAM wParam, LPARAM lParam );     BOOL SetGestureConfig(CGestureConfig* pConfig);     BOOL GetGestureConfig(CGestureConfig* pConfig);     const PGESTUREINFO GetCurrentGestureInfo() const;     virtual BOOL OnGestureZoom(CPointptCenter, long lDelta);     virtual BOOL OnGesturePan(CPointptFrom, CPointptTo);     virtual BOOL OnGestureRotate(CPointptCenter, double dblAngle);     virtual BOOL OnGestureTwoFingerTap(CPointptCenter);     virtual BOOL OnGesturePressAndTap(CPointptPress, long lDelta); };
WM_TOUCH ( Win32 API ) Visual Studio 2010 C++ / MFC 41
WM_TOUCH ( MFC ) Visual Studio 2010 C++ / MFC 42 class CWnd {     BOOL m_bIsTouchWindowRegistered;     void OnTouchMessage( WPARAM wParam, LPARAM lParam );     BOOL RegisterTouchWindow(BOOL bRegister = TRUE, ULONG ulFlags = 0);     BOOL IsTouchWindow() const;     virtual ULONG GetGestureStatus(CPointptTouch);     virtual BOOL OnTouchInputs(UINT nInputsCount, PTOUCHINPUT pInputs);     virtual BOOL OnTouchInput         (CPoint pt, intnInputNumber, intnInputsCount, PTOUCHINPUT pInput); };
Visual Studio 2010 C++ / MFC 43
MFC in Visual Studio 2010 Visual Studio 2010 C++ / MFC 44
1. Restart manager Restart Manager의 소개 Restart Manager의 특징및 기능 적용 방법 및 동작 데모
Crash !! 프로그래밍의 고질적인 불청객 – 비정상종료 minidump를 통해 한 단계 성장….이라고 위안을…
!! 작업 중이던 상태와 데이터는 모두 분실 사전 예방 : Exception Handling 등… 사후 조치 : 임시 저장 / 자동 복구 기법 등…
MS Word 2007 MS Excel 2007 MS Office의 문서 복구 기능 수시로문서의 작업 내용을 임시 저장 문제가 발생할 경우, 임시 저장본으로 복원 Restart Manager에서 기능 제공
Restart Manager 소개 Windows Vista에서 새로 소개된 기능 재시작이 필요한 업데이트를 할 때나 처리하지 못한 exception으로 크래시가 발생했을 때, 데이터가 손실되지 않도록 도와줌. IE8 세션 복구 기능과 유사.
재시작 기능 종료 Note : 실행 후 60초 이후 적용 - 무한 반복 재시작 방지 인스톨러, 패쳐에 의한 업데이트 후 재시작에도 활용 가능 	- http://msdn.microsoft.com/en-us/library/aa373681(VS.85).aspx
복구 기능 이전에 작업 중이던 문서 다시 열기 자동 저장된 문서 복구하기 일정 시간 주기마다 임시 저장 사용자에게 복구 여부 확인 Note : Document-View 구조에 적용됨.    (Dialog Based 프로젝트에서는 미지원)
적용 : 1 line of code. 새 프로젝트 – Application Wizard 기존 프로젝트 – 코드 한 줄 추가
Restart Manager 적용 방법및 기능 동작 데모 Demo
2. Task dialog Task Dialog의 소개 Task Dialog 기능 및 특징 적용 방법 및 동작 데모
Message Box AfxMessageBox( “본문”, MB_OK ); 간단한 정보의 노출 사용자에게 질문 및 의사 입력 기능 제한적사용 : 기능확장이 어려움.
derive class CDialog class CMyDialog : class CDialog 강력한 커스터마이징. 일일이 디자인 하기에 번거로운 점이 있음. 심플한 대화상자의 디자인에 부적합.
Task Dialog Message Box Task Dialog class CDialog AfxMessageBox(…)의기능을 보다 강화 CDialog파생 클래스 생성의 불편 완화
Task Dialog - Example IMG : http://www.codeproject.com/KB/vista/TaskDialogEmulateRedux/TaskDialogRedux02.png
Task Dialog Vista 에서 새롭게 추가된 기능 Vista, Windows7, Win Server 2008 이전 OS에서는 사용 불가능 CTaskDialog::IsSupported() 인터넷 익스플로러8.0의 세션 복구 기능 안내창.
Task Dialog
Task Dialog 사용 방법및 기능 데모 Demo
Visual Studio 2010 C++ / MFC 62 Reference http://www.microsoft.com/downloads/details.aspx?familyid=1C333F06-FADB-4D93-9C80-402621C600E7&displaylang=en http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&displaylang=en
Reference ,[object Object],http://vsts2010.net

Mais conteúdo relacionado

Semelhante a 100526 windows7 mfc_최성기_배포용

Qt编程介绍
Qt编程介绍Qt编程介绍
Qt编程介绍easychen
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程deer hope
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程deer hope
 
Lecture7
Lecture7Lecture7
Lecture7orgil
 
Catia命令详解
Catia命令详解Catia命令详解
Catia命令详解leiy
 
Lecture1
Lecture1Lecture1
Lecture1orgil
 
Tech・Ed 2010 Japan Day1 LT Kamebuchi
Tech・Ed 2010 Japan Day1 LT KamebuchiTech・Ed 2010 Japan Day1 LT Kamebuchi
Tech・Ed 2010 Japan Day1 LT KamebuchiKeiji Kamebuchi
 

Semelhante a 100526 windows7 mfc_최성기_배포용 (7)

Qt编程介绍
Qt编程介绍Qt编程介绍
Qt编程介绍
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程
 
C++模板与泛型编程
C++模板与泛型编程C++模板与泛型编程
C++模板与泛型编程
 
Lecture7
Lecture7Lecture7
Lecture7
 
Catia命令详解
Catia命令详解Catia命令详解
Catia命令详解
 
Lecture1
Lecture1Lecture1
Lecture1
 
Tech・Ed 2010 Japan Day1 LT Kamebuchi
Tech・Ed 2010 Japan Day1 LT KamebuchiTech・Ed 2010 Japan Day1 LT Kamebuchi
Tech・Ed 2010 Japan Day1 LT Kamebuchi
 

Mais de sung ki choi

[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장sung ki choi
 
[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장sung ki choi
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화sung ki choi
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임sung ki choi
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기sung ki choi
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.sung ki choi
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장sung ki choi
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'sung ki choi
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장sung ki choi
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표sung ki choi
 
[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자sung ki choi
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7sung ki choi
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열sung ki choi
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbmssung ki choi
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기sung ki choi
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32sung ki choi
 

Mais de sung ki choi (16)

[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장[아꿈사] 게임 기초 수학 물리 1,2장
[아꿈사] 게임 기초 수학 물리 1,2장
 
[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장[120316] node.js 프로그래밍 5장
[120316] node.js 프로그래밍 5장
 
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
 
[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임[111217 아꿈사연말모임] 웹소켓과온라인게임
[111217 아꿈사연말모임] 웹소켓과온라인게임
 
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
[아꿈사/111105] html5 9장 클라이언트측 데이터로 작업하기
 
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
[111015/아꿈사] HTML5를 여행하는 비(非) 웹 개발자를 위한 안내서 - 1부 웹소켓.
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
[110730/아꿈사발표자료] mongo db 완벽 가이드 : 7장 '고급기능'
 
[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장[아꿈사/110528] 멀티코어cpu이야기 5,6장
[아꿈사/110528] 멀티코어cpu이야기 5,6장
 
[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표[아꿈사/110514] 멀티코어cpu이야기 시작발표
[아꿈사/110514] 멀티코어cpu이야기 시작발표
 
[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자[110331] visual studio 속성 관리자
[110331] visual studio 속성 관리자
 
100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7100828 [visual studio camp #1] C++0x와 Windows7
100828 [visual studio camp #1] C++0x와 Windows7
 
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
110212 [아꿈사발표자료] taocp#1 1.2.8. 피보나치수열
 
101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms101102 endofdb select.1_rdbms
101102 endofdb select.1_rdbms
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
 
Touch Ux With Win32
Touch Ux With Win32Touch Ux With Win32
Touch Ux With Win32
 

100526 windows7 mfc_최성기_배포용

  • 1. MFC를 이용한 쉽고 빠른Windows 7 기능활용 NC Soft 최 성 기 florist.sk@gmail.com http://vsts2010.net
  • 2.
  • 4. MFC를 눈여겨볼 필요가 있는 세 가지 이유 다시 시작된 다양한 API의 추가 우리는 이미 MFC를 익혀 두었다. 쉽고, 빠르다. 투자 대비 높은 효율 Visual Studio 2010 C++ / MFC 3
  • 6. Windows 7 style Ribbon Visual Studio 2010 C++ / MFC 5
  • 7. Visual Manager Visual Studio Office 2003 Visual Studio 2005 Office 2007 Office 2007 Black
  • 8. Visual Studio 2005 Style Smart Docking
  • 9. Tabbed MDI MDI Tabbed Group MDI Tabbed Standard MDI Tabbed Standard + Auto-Color
  • 11. Other New Features New Dialogs Color Picker Bitmap Editor Etc… Desktop Alert Window New Controls Advanced Button Shell Tree and List Mask edit Property List
  • 12. MFC ClassWizard (vc++ 6.0) Visual Studio 2010 C++ / MFC 11
  • 13. Ctrl + Shift + X ! Visual Studio 2010 C++ / MFC 12
  • 14. Visual Studio 2010 C++ / MFC 13 MFC를 써서 Windows 7 기능을 넣고 나면XP에서는 안돌아가는 건가요? 기존 프로젝트에서 vs2010 MFC 프로젝트로 migration할 때 발생하는 문제점은 없나요? 아니요. GetVersionEx( … ), VerifyVersionInfo( … ) 등 MFC 기능 내에서는 큰 문제 없을 듯.
  • 15. Windows 7 Programming With MFC Visual Studio 2010 C++ / MFC 14
  • 16. Take Advantage of Multi-touch Build User Interfaces with the Ribbon Use Jumpliststo Simplify Navigation
  • 17. Taskbar Overlay Icon ProgressBar JumpList Thumbnail Preview Thumbnail Toolbar Multi Touch 멀티터치를 적용하는 3단계 방법. Visual Studio 2010 C++ / MFC 16
  • 18. Windows 7 Taskbar Visual Studio 2010 C++ / MFC 17 Multiple windows and hover Running Not running Active
  • 19. Visual Studio 2010 C++ / MFC 18 Overlay Icon & Progressbar
  • 20. CFrameWnd* mainfrm = … mainFrm->SetTaskbarOverlayIcon( IDI_ICON_INFO, L“INFO” ); Visual Studio 2010 C++ / MFC 19
  • 21. CFrameWnd * mainfrm = … mainFrm->SetProgressBarPosition( nValue ); mainFrm->SetProgressBarState( TBPF_ERROR ); Visual Studio 2010 C++ / MFC 20
  • 22. Visual Studio 2010 C++ / MFC 21 Jump List IE 8.0 Live Messenger
  • 23. Jump ListsA detailed look Pinned category Destinations (“nouns”) Known categories Custom categories User tasks Tasks (“verbs”) Taskbar tasks
  • 24. Jump list Visual Studio 2010 C++ / MFC 23 마우스로 띄울 때 터치로 띄울 때
  • 25. Jump list in Start Menu Visual Studio 2010 C++ / MFC 24
  • 26. class CJumpList Visual Studio 2010 C++ / MFC 25 CJumpListm_jumpList; m_jumpList.AddKnownCategory(KDC_FREQUENT); m_jumpList.AddKnownCategory(KDC_RECENT); m_jumpList.AddDestination( strCategoryName, strFilePath ); m_jumpList.AddTask( strExePath, strArgs, strTitle, strIconPath, iIconIndex ); m_jumpList.AddTaskSaparator(); m_jumpList.CommitList();
  • 27. Taskbar Features : Overlay Icon Progress bar Jump list Demo
  • 28. Thumbnail Preview Visual Studio 2010 C++ / MFC 27 - Tabbed Thumbnails (MDI Windows)
  • 29. 코딩 없이 그냥 드려요. Visual Studio 2010 C++ / MFC 28 vs2008 vs2010
  • 30. thumbnail에 임의 기능 추가하기 Visual Studio 2010 C++ / MFC 29 프로필 이미지 Live Messenger
  • 31. Windows Shell Programming (win32) Visual Studio 2010 C++ / MFC 30 ITaskbarList4 windows shell interface http://msdn.microsoft.com/en-us/library/dd562040(VS.85).aspx
  • 32. Thumbnail Toolbars Visual Studio 2010 C++ / MFC 31 최대 7개 버튼 추가 가능 런타임에 수정될 수는 없음. Media player iTunes
  • 33. Visual Studio 2010 C++ / MFC 32 ITaskbarList3::ThumbBarAddButtons() ITaskbarList3 windows shell interface http://msdn.microsoft.com/en-us/library/dd391692(v=VS.85).aspx
  • 34. Taskbar Fretures : Thumbnail Preview Thumbnail Toolbars Demo
  • 35. Multi-Touch ProgrammingWith MFC Visual Studio 2010 C++ / MFC 34 이미지 출처 : http://farm3.static.flickr.com/2152/2547399057_f91154cb87_o.jpg
  • 36. 하드웨어 에뮬레이터 http://multitouchvista.codeplex.com/ 멀티터치 인식 드라이버 (오픈소스)
  • 37. 멀티 터치를 적용하는 3단계 Visual Studio 2010 C++ / MFC 36 1 2 3
  • 38. WM_GESTURE의 9가지 제스처 http://msdn.microsoft.com/en-us/library/dd940543(VS.85).aspx
  • 39. GetSystemMetrics() SM_DIGITIZER : 입력장치 상태 확인 SM_TABLETPC : 타블렛pc 여부 확인 SM_MAXIMUMTOUCHES : 최대 동시입력 개수
  • 41. WM_GESTURE ( MFC ) Visual Studio 2010 C++ / MFC 40 class CWnd { void OnTabletQuerySystemGestureStatus ( WPARAM wParam, LPARAM lParam ); void OnGesture ( WPARAM wParam, LPARAM lParam ); BOOL SetGestureConfig(CGestureConfig* pConfig); BOOL GetGestureConfig(CGestureConfig* pConfig); const PGESTUREINFO GetCurrentGestureInfo() const; virtual BOOL OnGestureZoom(CPointptCenter, long lDelta); virtual BOOL OnGesturePan(CPointptFrom, CPointptTo); virtual BOOL OnGestureRotate(CPointptCenter, double dblAngle); virtual BOOL OnGestureTwoFingerTap(CPointptCenter); virtual BOOL OnGesturePressAndTap(CPointptPress, long lDelta); };
  • 42. WM_TOUCH ( Win32 API ) Visual Studio 2010 C++ / MFC 41
  • 43. WM_TOUCH ( MFC ) Visual Studio 2010 C++ / MFC 42 class CWnd { BOOL m_bIsTouchWindowRegistered; void OnTouchMessage( WPARAM wParam, LPARAM lParam ); BOOL RegisterTouchWindow(BOOL bRegister = TRUE, ULONG ulFlags = 0); BOOL IsTouchWindow() const; virtual ULONG GetGestureStatus(CPointptTouch); virtual BOOL OnTouchInputs(UINT nInputsCount, PTOUCHINPUT pInputs); virtual BOOL OnTouchInput (CPoint pt, intnInputNumber, intnInputsCount, PTOUCHINPUT pInput); };
  • 44. Visual Studio 2010 C++ / MFC 43
  • 45. MFC in Visual Studio 2010 Visual Studio 2010 C++ / MFC 44
  • 46. 1. Restart manager Restart Manager의 소개 Restart Manager의 특징및 기능 적용 방법 및 동작 데모
  • 47. Crash !! 프로그래밍의 고질적인 불청객 – 비정상종료 minidump를 통해 한 단계 성장….이라고 위안을…
  • 48. !! 작업 중이던 상태와 데이터는 모두 분실 사전 예방 : Exception Handling 등… 사후 조치 : 임시 저장 / 자동 복구 기법 등…
  • 49. MS Word 2007 MS Excel 2007 MS Office의 문서 복구 기능 수시로문서의 작업 내용을 임시 저장 문제가 발생할 경우, 임시 저장본으로 복원 Restart Manager에서 기능 제공
  • 50. Restart Manager 소개 Windows Vista에서 새로 소개된 기능 재시작이 필요한 업데이트를 할 때나 처리하지 못한 exception으로 크래시가 발생했을 때, 데이터가 손실되지 않도록 도와줌. IE8 세션 복구 기능과 유사.
  • 51. 재시작 기능 종료 Note : 실행 후 60초 이후 적용 - 무한 반복 재시작 방지 인스톨러, 패쳐에 의한 업데이트 후 재시작에도 활용 가능 - http://msdn.microsoft.com/en-us/library/aa373681(VS.85).aspx
  • 52. 복구 기능 이전에 작업 중이던 문서 다시 열기 자동 저장된 문서 복구하기 일정 시간 주기마다 임시 저장 사용자에게 복구 여부 확인 Note : Document-View 구조에 적용됨. (Dialog Based 프로젝트에서는 미지원)
  • 53. 적용 : 1 line of code. 새 프로젝트 – Application Wizard 기존 프로젝트 – 코드 한 줄 추가
  • 54. Restart Manager 적용 방법및 기능 동작 데모 Demo
  • 55. 2. Task dialog Task Dialog의 소개 Task Dialog 기능 및 특징 적용 방법 및 동작 데모
  • 56. Message Box AfxMessageBox( “본문”, MB_OK ); 간단한 정보의 노출 사용자에게 질문 및 의사 입력 기능 제한적사용 : 기능확장이 어려움.
  • 57. derive class CDialog class CMyDialog : class CDialog 강력한 커스터마이징. 일일이 디자인 하기에 번거로운 점이 있음. 심플한 대화상자의 디자인에 부적합.
  • 58. Task Dialog Message Box Task Dialog class CDialog AfxMessageBox(…)의기능을 보다 강화 CDialog파생 클래스 생성의 불편 완화
  • 59. Task Dialog - Example IMG : http://www.codeproject.com/KB/vista/TaskDialogEmulateRedux/TaskDialogRedux02.png
  • 60. Task Dialog Vista 에서 새롭게 추가된 기능 Vista, Windows7, Win Server 2008 이전 OS에서는 사용 불가능 CTaskDialog::IsSupported() 인터넷 익스플로러8.0의 세션 복구 기능 안내창.
  • 62. Task Dialog 사용 방법및 기능 데모 Demo
  • 63. Visual Studio 2010 C++ / MFC 62 Reference http://www.microsoft.com/downloads/details.aspx?familyid=1C333F06-FADB-4D93-9C80-402621C600E7&displaylang=en http://www.microsoft.com/downloads/details.aspx?familyid=752CB725-969B-4732-A383-ED5740F02E93&displaylang=en
  • 64.
  • 65. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Visual Studio, the Visual Studio logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.   The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.  MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.