본문 바로가기

프로그래밍162

DirectX-디바이스 생성 자 이제 DX를 해봅시다! 일단 닥치고 코드를 칩니다. // DX9를 사용하기 위한 헤더 #include #pragma comment(lib, "dxerr9.lib") #pragma comment(lib, "d3d9.lib") #pragma comment(lib, "d3dx9.lib") #pragma comment(lib, "dxguid.lib") #pragma comment(lib, "winmm.lib") ////////////////////////////////////////////////////////////////////////// // 전역 변수 LPDIRECT3D9g_pD3D = NULL;// D3D 디바이스를 생성할 D3D 객체 변수 LPDIRECT3DDEVICE9g_pd3dDevice = .. 2010. 5. 17.
MFC-CImage( 스크린 샷 찍기 ) 화면에 있는 스크린 샷을 찍을땐 어떻게 해야 할까, 그것도 작업 영역에 대해서만, 책에 있는 예제를 조금 변경해서 원하는 결과를 만들었지만, 더 나은 방법이 있는지는 아직 잘 모르겠다. 게임을 하다보면 스크린 샷을 찍게 될 경우가 종종 있다. 그랬을 경우 풀스크린이라면 상관 없을지도 모르나, 창모드라면 윈도우 화면 전체가 아닌 현재 플레이 중인 게임 화면만 이미지로 저장 되어야 한다고 생각한다. 프로젝트에서 WM_PAINT를 추가 하여 아무 이미지나 화면에 띄워 보자. (필자는 이전의 결과 사용) 그 후 원하는 메시지 탭을 하나 추가해 보자. 키보드 라던지, 마우스 라던지, 추가한 이후에 다음처럼 코드를 작성한다. // View::OnLButtonDown // 바탕 화면 윈도우 객체에 대한 포인터를 얻는.. 2010. 5. 17.
MFC-CImage 클래스 기존의 이미지를 출력하는 방식이 아닌 MFC에서 추가된 CImage를 사용해 보자. // View::OnPaint() // 이미지가 저장된 위치 CString strImagePath = _T("Image.bmp"); // CImage 클래스 변수를 생성한다. CImage Image; // 저장 된 위치에 이미지를 불러온다. HRESULT hResult = Image.Load( strImagePath ); // 이미지를 불러 오는데 실패 했을 경우. if( FAILED( hResult ) ) { CString strtmp = _T("ERROR : Failed to load"); strtmp += strImagePath + _T("\n"); TRACE(strtmp); return; } // 프로그램이 종료 .. 2010. 5. 17.
MFC-비트맵 띄우기 MFC의 비트맵도 API와 매우 흡사하다. 일단 비트맵 리소스를 하나 추가하자. 다음과 같은 비트맵이 있다고 하였을 때, 이제 이 비트맵을 가지고 띄우는 일과, 투명값, 알파값, 사이즈 조정등을 하나하나 해보도록 하자. 기본적으로 리소스에 존재하는 이미지를 띄우는 개념에 대해서는 구지 설명하지 않고, 소스 위주로 보도록 하자. 먼저 프로젝트에 WM_PAINT 메시지를 하나 만들자. CDC MemDC; BITMAP bmpInfo; // dc에 대해 메모리DC를 만들어 준다. MemDC.CreateCompatibleDC( &dc ); CBitmap bmp; CBitmap* pOldBmp = NULL; // 비트맵 로드 bmp.LoadBitmap( IDB_BITMAP1 ); // 비트맵에 정보를 저장 bmp... 2010. 5. 16.
MFC-가상 버튼 만들기 가상으로 버튼을 만들어 보자. 먼저 WM_LBUTTONDOWN과 WM_LBUTTONUP, WM_PAINT에 대해서 메시지탭에서 추가해 주자. //View::OnLButtonDown if( m_BtnRect.PtInRect( point ) ) // 현재 마우스 위치가 Rect안에 존재 하는지 확인해 준다. { // 그렇다면 m_bClicked = !m_bClicked; // m_bClicked를 반대로 변경( 아마 false에서 true가 될 것이다.) RedrawWindow( &m_BtnRect ); // 화면 갱신 }​ //View::OnLButtonUp if( m_bClicked ) // 버튼을 땠을 때 그 값이 true라면 { m_bClicked = !m_bClicked; // false로 변경 R.. 2010. 5. 16.
MFC-부채꼴 그리기 원을 그리는 것은 쉽지만 부채꼴을 그리기 위해서는 조금더 알아야 할것이 존재한다. 먼저 코드와 실행 화면을 보자. //View::OnPaint CBrush NewBrush( RGB( 0, 192, 192 ) ); CBrush* pOldBrush = dc.SelectObject( &NewBrush ); // CRect를 사용해 특정 좌표를 기억한 이후 CRect PieRect(20, 20, 140, 140); // Pie 함수를 사용해 부채꼴을 그린다. dc.Pie( PieRect, CPoint( PieRect.CenterPoint().x, PieRect.top ), CPoint(PieRect.right, PieRect.CenterPoint().y)); PieRect = CRect( 150, 20, 270.. 2010. 5. 16.