일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 컴포지트 패턴
- 데커레이터 패턴
- 브릿지
- 싱글턴 패턴
- 디자인패턴
- 컴포지트 빌더
- 프로토타입 패턴
- 싱글톤
- 팩터리 패턴
- 싱글톤 패턴
- 싱글턴
- 동적 데코레이터
- 팩터리
- 모던C++디자인패턴
- 팩터리 메서드
- 컴포지트
- 단순한 빌더
- 디자인 패턴
- 빌더
- 함수형 팩터리
- 프로토타입
- 내부 팩터리
- 데커레이터
- 브릿지 패턴
- 흐름식 빌더
- 그루비 스타일 빌더
- 추상 팩터리
- 프로토타입 중복처리
- 빌더 패턴
- 동적 데커레이터
- Today
- Total
목록WinAPI (5)
GGym's Practice Notes
OpenGL을 쓰기 위해선 PIXELFORMATDESCRIPTOR에 대하여 알아야한다. PIXELFORMATDESCRIPTOR : 이 구조체는 서피스를 그리는데 필요한 픽셀포멧을 기술한다. 서피스는 그림상자라고 이해하면 편하다. PIXELFORMATDESCRIPTOR pfd; 구조체의 내용을 채운다. memset(&pfd, 0, sizeof(pfd)); pfd.nSize = sizeof(pfd); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 32; 대부분의 기본 값을 0으로 하기위해서 memset()을 사용하여 0으로 설정한다. 나머..
GDI (Graphic Device Interface) GDI Object : 그래픽 출력에 사용되는 도구들 (펜, 브러시, 비트맵, 폰트) - 펜 : 선을 그을 때 사용 - 브러시 : 면을 채울 때 사용 - 비트맵 : 비트맵 파일 > GDI 오브젝트를 모아 놓은것 : DC -> 선, 면에 대한 정보가 다 있음. 현재 선택되어 있는 GDI 오브젝트 사용 > 그래픽을 그리기전에 DC에 적절한 오브젝트를 선택하고 원하는 모양과 속성으로 그래픽 출력 > GDI 오브젝트는 보통 Render()함수 내부에 구현 GDI 오브젝트는 핸들로 관리 : HPEN, HBRUSH, HBITMAP GDI오브젝트를 바꾸어가면서 쓸때 순서를 유의 1 핸들 선언 2 GDI 오브젝트 만듬 3 DC선택 이전 핸들 저장 4 사용 5 선택..
기본적으로 Windows는 세가지 동적 연결 라이브러리(DLL: Dynamic Link Library)로 구성된다. - Kernel : 메모리, 프로그램 관리 - User : UI, 윈도우 관리 - GDI (Graphic Device Interface) : 화면처리, 그래픽 DC는 화면 출력에 필요한 모든 정보를 가지는 구조체이기 때문에 이 셋중 DC는 GDI와 관계가 되어있다. 하나의 윈도우에 대한 그래픽 정보를 가지고 있으며, 예를 들어 폰트, 선의 색상, 굵기, 채우는 무늬, 그리기 모드, 시작 위치 등의 정보를 가지고 있다. DC의 내부는 건들 필요없이 나머지는 디폴트 정보를 적용하고 DC의 핸들만 사용자에게 건내면 된다. DC 핸들의 자료형 : HDC HDC를 얻으려면 getDC()함수를 통하여..
// 현재 클라이언트 영역 RECT rcClient = { 0, 0, WINSIZE_X, WINSIZE_Y }; // 현재 윈도우의 크기가 클라이언트 영역이 되도록 크기를 조정(현재 윈도우 크기, 윈도우 모양 스타일, 메뉴 여부) AdjustWindowRect(&rcClient, WS_OVERLAPPEDWINDOW, FALSE); // 얻어온 사각형의 정보로 윈도우 사이즈 세팅 SetWindowPos(g_hWnd, NULL, 100, 200,// 변경할 위치(X, Y) (rcClient.right- rcClient.left), (rcClient.bottom- rcClient.top), // 변경할 크기(가로, 세로) SWP_NOZORDER|SWP_NOMOVE// 깊이변경 금지 | 이동 금지 ); Show..
#include #define START_X 0 #define START_Y 0 #define WINSIZE_X 800 #define WINSIZE_Y 600 HINSTANCE g_hInst;// 인스턴스의 핸들 선언 LPCTSTR g_ClassName = TEXT("PARK");// 클래스 이름 LPCTSTR g_WinName = TEXT("JUNE");// 윈도우 이름 HWND g_hWnd;// 윈도우의 핸들 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPRevInstance, LPSTR lpszCmdParam, int nCmdShow) { MSG Mess..