분류 전체보기 548

도큐먼트 관련해서

1. 새파일 버튼 눌렀을때 발생하는 함수 - DeleteContents - OnNewDocument 2 . 파일열기 했을때 발생하는 함수 - OnOpenDocument() -> Invalidate 알아서 호출해준다(뷰클래스의 OnDraw 호출해줌) 3. 파일 SAVE 관련 - SetModifiedFlag 설정했을때 저장한다고 ok 누르면 OnSaveDocument(...) 함수 호출한다. ( 메뉴의 ID_FILE_SAVE 을 오버라이드 해도 OnSaveDocument(...) 함수 호출 ) - 메뉴의 ID_FILE_SAVE 을 오버라이드하고 OnSaveDocument(...)도 오버라이드 했을때 일반저장등은 ID_FILE_SAVE 함수 호출하고 SetModifiedFlag 은 OnSaveDocument(..

IT/MFC 2005.06.24

DirectDraw 기본적으로 사용하기!!!!

* 전체적인 순서 1 . DirectDraw 객체 생성 2 . 협력수준 설정 (자원을 얼마나 쓸것인지, 전체모드, 창모드....) 2-1. 해상도 조절 ( 전체모드 일때만 ) ex) dxguid.lib , ddraw.lib 추가 Tool->Option 에서 Include 와 라이브러리에서 DX가 가장 상위에 있게한다 #include #include ... LPDIRECTDRAW lpDD; LPDIRECTDRAW7 g_lpDD; .....hWnd값을 얻은 후에(SetCooperativeLevel 이 부분에서 hWnd 사용하기때문에) SetCooperativeLevel 윗부분은 hWnd얻기 전에 해줘도 무관하다 if(FAILED(DirectDrawCreate(NULL,&lpDD,NULL))) { Output..

IT/DirectDraw 2005.06.24

MDI(Multi Document Interface)

오늘은.. 드디어 멀티 도큐먼트..먼저 SDI 때와 다른점을 살펴보면.. CMainFrame 클래스가CMDIFrameWnd를 상속 받는다.그리고CChildFrame 클래스는CMDIChildWnd를 상속받는다.CMDIFrameWnd와CMDIChildWnd의아버지 클래스는 CFrameWnd이다. App 클래스의InitInstance함수를 보면CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_BMPTYPE, // 메뉴와 연결된다. RUNTIME_CLASS(CMDItest2Doc), RUNTIME_CLASS(CChildFrame), // 차일드프레임.. RUNTIME_CLASS(CMDItest2View)); AddDocTempl..

IT/MFC 2005.06.24

MFC 에서 쓰레드 관련한 글

MFC 프로그래밍에서 거의 100% 들어맞는 원칙이 하나 있습니다.비슷한 기능을 하는 함수가 C/C++ 런타임 라이브러리 API 버전이 있고 앞에 Afx가 붙은 MFC 버전이 있다면 무조건 Afx가 붙은 버전을 써야 한다는 겁니다.예를 들어, LoadLibrary 같은 것도 MFC에선 AfxLoadLibrary를 써야 합니다. 이런 얘기를 꺼내는 건 다름이 아니라많은 분들이 MFC에서 _beginthread나 CreateThread를 이용해서 스레드를 만든 다음그 스레드에서 CWinApp, CView 등의 인스턴스에 액세스하면서 에러를 경험하시는 것 같아서 입니다. (1) MFC 오브젝트는 '스레드 안전'하지 않습니다.동일한 오브젝트를 두 스레드에서 동시에 사용하려고 하면 맛 갈 수 있습니다 (2) MF..

IT/MFC 2005.06.24

DirectX7 - Surface 생성

DirectX7 - Surface 생성 DirectDraw의 핵심기능 하면 바로 비디오 모드 세팅과 바로 오늘 배울 서페이스 개념입니다. 비디오 모드 세팅과 서페이스만 배우면 일단은... DirectDraw를 99% 이상은 끝냈다고 봐도 될겁니다. 더군다나 DirectDraw는 DirectX 8.0부터는 2D 부분과 3D 부분이 DirectGraphics으로 합쳐져서 초반에 개념 잡기가 조금은 힘들지만, 서페이스 개념은 8.0, 9.0 에서도 마찬가지이므로 이번 시간에 배우는 내용만 잘 숙지하시면 다이렉트의 버전에 상관 없이 같은 방식으로 프로그래밍을 하실 수가 있습니다. DirectDraw에 존재하는 Surface의 종류에는 기본적으로 기본 표면과 보조 표면 두가지가 있습니다. 기본 표면은 반드시 만들..

IT/DirectDraw 2005.06.24

다이렉트 X 기초

* 다이렉트 X 기본적으로 사용하려면 1. dxguid.lib , ddraw.lib 추가 2. Tool->Option 에서 Include 와 라이브러리에서 DXSDK추가하고 DX가 가장 상위에 있게한다 * 전체적인 순서 1 . DirectDraw 객체 생성 2 . 협력수준 설정 (자원을 얼마나 쓸것인지, 전체모드, 창모드....) 2-1) 해상도 조절 ( 전체모드 일때만 ) 3. Surface 생성 ( 서피스를 얻은다음에 Release 안시켜주고 SetDisPlayMode하면 안된다!!) 4. OffScreen 생성 5. Draw할것들을.. 백서피스에 Draw 5-1) OffScreen -> 백서피스 5-2) 백서피스에 기타 그리기... 6. FLIP

IT/DirectDraw 2005.06.24

파일 관련 API

파일을 다루는데 사용되는 API함수엔 다음과 같은 함수가 있습니다. CreateFile, WriteFile, ReadFile 우선 파일을 열거나 생성할때는 CreateFile 함수가 사용됩니다. 함수원형HANDLE CreateFile( LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTE lpSecurityAttributes, DWORD dwCreationDispostion, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ); lpFileName : 생성 또는 오픈할 파일의 경로와 파일이름( NULL로 끝나는 문자열 ) dwDesiredAccess : 파일 접근 모드. ..

IT/Windows API 2005.06.24