본문 바로가기

scriptplay330

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.
MessageBox MessageBoxExW( _In_opt_ HWND hWnd, // 박스를 소유할 윈도우 핸들 _In_opt_ LPCWSTR lpText, // 메시지 창의 내용 _In_opt_ LPCWSTR lpCaption, // 메시지 창의 제목 _In_ UINT uType, // 내용에 출력될 아이콘이나 버튼 _In_ WORD wLanguageId ); MessageBox(hWnd, L"메시지 박스 입니다.", L"한글로 된 메시지 박스 입니다.", MB_ICONQUESTION | MB_OK); cs *윈도우 종료 버튼을 누를시 활용. ;'X 버튼'을 누르면 WM_CLOSE 메시지가 전송되는데 상황에 따라 처리를 다르게 하는게 좋다. LRESULT CALLBACK WndProc(HWND hWnd, UINT mes.. 2019. 9. 24.
Bitmap 복사 ;화면에 출력된 그림을 복사하려면 출력된 그림은 DC의 Bitmap 객체에 보관되어 있기 때문에 해당 Bitmap 객체에 저장된 '비트 패턴'을 GetBitmapBits 함수로 복사해서 사용하면 됨. // DC에서 비트맵 객체 얻기. HBITMAP h_bitmap = (HBITMAP)GetCurrentObject(h_dc, OBJ_BITMAP); // 비트맵 객체에 저장된 비트 패턴 복사하기. BITMAP bmp_info; // 비트맵의 정보를 담을 구조체. GetObject(h_bitmap, sizeof(BITMAP), &bmp_info); // 비트 패턴의 크기를 구하기..bmBitsPixel 의 비트 수에 따라 변환 값이 달라짐. int pattern_size = bmp_info.bmWidth * .. 2019. 9. 24.