IT 219

CDocument 멤버함수및 기타 설명

CDocument Class MembersConstructionCDocumentConstructs aCDocumentobject. OperationsAddViewAttaches a view to the document.GetDocTemplateReturns a pointer to the document template that describes the type of the document.GetFirstViewPositionReturns the position of the first in the list of views; used to begin iteration.- 첫번째 뷰의 포지션을 얻는다 .( 포지션 얻은후 GetNextView 와 함께사용)GetNextViewIterates through the..

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

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

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

다이렉트 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

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

파일 대화상자

메모장 같은 프로그램을 실행해서 파일을 저장할때나 불러올때 보면 파일을 선택할 수 있는 다이얼로그 창이 있습니다. 이 다이얼로그 창은 겉보기엔 파일을 조작하는 기능을 할것 같지만 실제론 단순히 파일 이름만을 읽어들이는 기능을 합니다. 가령 예를들어 메모장에서 바탕화면에 있는 'aaa.txt'라는 파일을 파일 대화상자로 불러들였다면 파일대화상자는 단지 aaa.txt의 파일 위치, 즉 경로만을 리턴해주는 역할을 합니다. 물론 파일을 다루는건 CreateFile이나 ReadFile같은 함수죠. 함수 원형BOOL GetOpenFileName( LPOPENFILENAME lpofn ); 매개변수lpofn : OPENFILENAME 구조체변수의 포인터 이 함수는 OPENFILENAME이라는 구조체만 인수로 받고 있..

IT/Windows API 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