본문 바로가기

::public/윈도우즈 응용 프로그래밍23

Direct2D - 그림파일 읽고 출력 Direct2D를 사용하여 프로그램을 할 때 이미지 파일에서 이미지를 읽거나 저장하려면 WIC(Windows Imaging Component)를 사용해야함. WIC 객체로 이미지 파일을 읽어서 Direct2D용 이미지로 변환하고 사용함. // Direct2D를 사용하기 위한 파일 포함. #include #include #pragma comment(lib, "D2D1.lib") using namespace D2D1; // Direct2D를 구성하는 각종 객체를 생성하는 객체 ID2D1Factory* gp_factory; // Direct2D에서 윈도우의 클라이언트 영역에 그림을 그릴 객체 ID2D1HwndRenderTarget* gp_render_target; // Direct2D의 기본 render ta.. 2019. 9. 25.
Direct2D - 오목 만들기 #include "stdafx.h" #include "MyWindowsProject.h" // Direct2D를 사용하기 위한 파일 포함. #include #pragma comment(lib, "D2D1.lib") using namespace D2D1; // 가로 세로 줄이 19개인 바둑판 #define X_COUNT 19 #define Y_COUNT 19 // 화면에서 바둑판의 거리 #define START_X 50 #define START_Y 50 // 줄 사이의 간격. 바둑 돌 크기 #define INTERVAL 26 // 바둑 돌의 반지름(줄 간격의 반) #define HALF_INTERVAL INTERVAL / 2 // 바둑판에 돌이 놓일 수 있는 위치 계산 #define XPOS(x) (STA.. 2019. 9. 25.
Direct2D 사용하기 // #include "stdafx.h"#include "MyWindowsProject.h" // Direct2D를 사용하기 위한 파일 포함.#include #pragma comment(lib, "D2D1.lib")using namespace D2D1; // Direct2D를 구성하는 각종 객체를 생성하는 객체ID2D1Factory* gp_factory;// Direct2D에서 윈도우의 클라이언트 영역에 그림을 그릴 객체ID2D1HwndRenderTarget* gp_render_target; void OnCreateRenderTarget(HWND hWnd){ RECT r; GetClientRect(hWnd, &r); // 지정한 윈도우의 클라이언트 영역에 그림을 그리기 위한 render target 생성.. 2019. 9. 25.
Direct2D *DirectX SDK의 구성 요소. -DirectX Graphics: 그래픽을 담당하는 API. Direct3D, Direct2D, DirectWrite + WIC(Windows Imaging Component). -DirectX Audio: 오디오를 담당하는 API. XAudio2. -DirectX Input: 입력을 담당하는 API. XInput. *Direct2D ;윈도우 환경에서의 새로운 2D 그래픽스 API. 하드웨어 가속 기능을 기본으로 사용하며 즉시 모드(immediate mode) 방식으로 동작함. *즉시 모드 ;프로그램 코드에서 호출하는 렌더링 명령어가 해당 그래픽 객체를 직접 렌더하는 효과를 발생시킨다. 이 모드에서는 DirectX와 같은 렌더링 프레임워크에 렌더할 것을 명시적으로 명.. 2019. 9. 25.
Timer ;일정한 시간 간격으로 반복적인 작업을 하고 싶을 경우 사용. *SetTimer int g_count = 0;void CALLBACK MyTimerFunc(HWND hWnd, UINT nMsg, UINT_PTR nIDEvent, DWORD dwTime){ g_count++; HDC h_dc = GetDC(hWnd); TextOutA(h_dc, 10, 10 + g_count * 20, "Timer Test 1", 12);} // 사용자가 메시지를 처리하는 함수.LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ HDC h_screen_dc = ::GetDC(NULL); // 모니터 전체 화면용 DC HDC h_dc.. 2019. 9. 24.
오목 만들기(결과로직 없음) // 오목 만들기. #include "stdafx.h" #include "MyWindowsProject.h" // 가로 세로 줄이 19개인 바둑판 #define X_COUNT 19 #define Y_COUNT 19 // 화면에서 바둑판의 거리 #define START_X 50 #define START_Y 50 // 줄 사이의 간격. 바둑 돌 크기 #define INTERVAL 26 // 바둑 돌의 반지름(줄 간격의 반) #define HALF_INTERVAL INTERVAL / 2 // 바둑판에 돌이 놓일 수 있는 위치 계산 #define XPOS(x) (START_X + (x) * INTERVAL) #define YPOS(y) (START_Y + (y) * INTERVAL) // 바둑판에 돌이 놓여져 .. 2019. 9. 24.