본문 바로가기

728x90
반응형

전체 글

(151)
삼각형 그리기.. 안녕하세요 엔젤루스입니다 ^^ 오늘은 DirectX sdk를 이용하여 간단한 삼각형을 그리는 프로그램을 만들어 보겠습니다. 오늘도 이전 포스팅과 거의 비슷한 코드를 가지고 있습니다. 그럼 한번 진행해 보도록 하겠습니다. Direct3D로 생성 된 어플리케이션은 정점을 사용해서 지오메트리 형상을 drawing 합니다. 3차원 Scene에서는 이러한 지오메트리 형상이 1개 이상을 포함하게 되는 것입니다. 이번에는 위에서 말한것 같이 간단한 삼각형을 그려보도록 하겠습니다. 3개의 정점을 사용해서 2D의 삼각형을 랜더링 하는데요. 정점의 저장 및 렌더링을 하기 위해서 Direct3D 개체인 정점 버퍼의 개념을 사용하고 있습니다. struct CUSTOMVERTEX { FLOAT x, y, z, rhw; DWOR..
DirectX 첫 시작 - 장치의 생성. 안녕하세요 ^^ 엔젤루스입니다. 이번에는 Direct X를 시작해보려고 합니다. 그러고 보니 참 이것 저것 많이 한다는 생각이 들기도 하네요 ㅎ 하지만 워낙 프로그래밍이 좋은 사람이라 약간의 이해를 ^^ Direct X를 이용하게 되면 우리는 그래픽 카드를 사용할 수 있게 됩니다. 그래서 더 빠르게 멋진 영상이나 그래픽 요소를 출력할 수 있게 되는 거죠. 그럼 첫 시작인 장치의 생성에 대해서 알아 보도록 하겠습니다. 장치를 생성한다는 것은 Direct X를 사용할 수 있도록 Direct3D 개체를 생성한다는 이야기 입니다. 그럼 이녀석을 생성하는 방법에 대해서 알아볼까요... INT WINAPI wWinMain(HINSTANCE hInst, HINSTANCE, LPWSTR, INT) { //윈도우 클래스..
Div 태그로 가운데 정렬하기 웹프로그래머 생활을 하다가 보니 별걸 다 포스팅하게 되네요 div로 레이어를 다룰때 가운데 정렬을 해야되는 경우가 있죠 이때 Table로 잡던 생각에 text-align:center 요렇게 해보았는데요 전혀 미동도 안하드라구요 그래서 찾다가 보니 전혀 생각지 못했던 방법으로 가운데 정렬시키더라구요 margin:0 auto
1초에 한번씩 캡쳐 화면 파일로 저장하기 이번에는 지금까지 공부했던 함수들을 모아모아 1초에 한번씩 화면을 캡쳐해서 그 화면을 파일로 해당 폴더에 저장해주는 프로그램을 만들어 보았습니다. 뭐 지금까지 공부했던 걸 그냥 모아서 만든 프로그램이라 그렇게 어려운 부분은 없었던거 같습니다. 이번에는 유니코드를 다 지원해주고 하느라 좀 골치가 아팠었는데요. 덕분에 유니코드에 대해서 좀 많이 알수 있었던 것 같습니다~ 혹시 위 함수들에 대해서 잘 모르겠다 싶으신분들은 이전 포스트들에 적혀져 있는 것을 보시면 자세히 알수 있을 것입니다~ #include #include #include "Resource.h" #pragma comment(lib, "shlwapi") LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)..
디렉토리 생성 이번에는 디렉토리를 생성하는 함수를 만들어 보았습니다. 100% 제가 한건 아니지만 -_-;; 디렉토리 명을 호출시 받아오고 그 디렉토리 명을 검사해서 있으면 만들지 않고 지나가게 됩니다. 원래 CreateDirectory 함수는 맨 하위 디렉토리만을 생성하는 녀석이라 부모 디렉토리가 없으면 디렉토리를 생성하지 못합니다. 그래서 문자를 하나하나 검사해서 상위 디렉토리부터 하나하나 다 만들어주게 하였습니다~ #include #pragma comment(lib, "shlwapi") BOOL CreateDirectoryFunc(LPCTSTR path) { TCHAR szPathBuffer[MAX_PATH]; UINT len = lstrlen(path); for(UINT i = 0; i < len; i++) {..
Win API Timer 회사 일이 엄청 바쁜이유에서 공부를 제대로 못하다가 주말이 되서야 좀 할 수 있게 되었네요. 그것도 야근의 여파로 제대로 못했지만 ㅜ_ㅜ 뭐 암튼 오늘은 열심히 Timer란 녀석에 대해서 공부해 보았습니다. 그럼 이 타이머는 무엇일까요? 타이머는 이름에서 풍겨오는 이미지와 같이 일정시간 간격을 두고 연속적으로 WM_TIMER 메시지를 발생시킵니다. 주기적으로 해야되는 작업이나 여러 번 나누어서 해야되는 작업이 있다면 이 타이머를 사용해서 하면 되는 것이죠 ^^ 우선 타이머 메시지를 통해서 간단한 시간 출력 프로그램을 만들어 보도록하죠 #include LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hInst; LPCTSTR lpszCl..
캡쳐 화면 BMP로 저장하기 오늘은 요 몇일 동안 열심히 공부했던 화면 캡쳐, 메뉴생성 등을 이용해서 캡쳐한 화면을 BMP 파일로 저장하는 프로그램을 만들어 보려고합니다. 중간을 빼먹고 공부해서 그런지 파일 저장 부분이 상당히 어렵게 느껴지더군요 ㅜ_ㅜ 그래도 여차여차 책과 인터넷을 뒤지며-_-;; 납득이 갈 정도의 이해를 하게 되었죠...이걸 몇시간이나 했다니 ㅜ_ㅜ 역시 점점 둔화되가는 머리를 느낄수 있었던 부분이었습니다. 에궁 네. 혹시 화면 캡쳐나 메뉴만드는 방법을 모르시는 분들을 위해서 해당 링크를 달아 드리겠습니다. 전체 화면 캡쳐 : http://darkangelus.tistory.com/entry/API로-구현한-전체화면-캡쳐-소스 해당 포커스 윈도우 화면 캡쳐 : http://darkangelus.tistory.co..
메뉴의 단축키, 액셀러레이터 생성 전 포스트에 이어서 메뉴 관련하여 기능을 알아보도록 하겠습니다. 우선 메뉴는 리소스 파일을 사용해서 만들어야 하고 실제 코드에서는 리소스 파일 생성 때 자동으로 생성되는 resource.h 파일을 include 해야하고 lpszMenuName = MAKEINTRESOURCE(해당 메뉴이름) 이렇게 대입해야 메뉴가 생성이 가능하게 되는 것입니다. 혹시 메뉴 생성 방법을 모르신다면 이전 포스팅을 먼저 보시고 이 포스팅을 보시기 바랍니다 링크 : http://darkangelus.tistory.com/entry/메뉴-만들기 위 링크로 가시면 리소스를 이용하여 메뉴를 생성하는 것을 알수 있을 것입니다. 그럼 이번에는 액셀러레이터와 단축키에 대해서 알아보죠. 액셀러레이터란 일종의 단축키 입니다. 하지만 단축키라는..

728x90
반응형