본문 바로가기

Developement/C/C++

DirectX 2D 창 메뉴가 안뜨면 창을 옮기리.

부제: DirectX 2D 와 DSound 함께 쓰기 @ Windows7, 8.x



 저번 주 에 있었던 DirectX 2D 를 좀 더 개선 하여 다음과 같이 구현 하였습니다.

  • PNG 이미지를 가져와서 D2D 이미지(텍스쳐)로 사용 하도록 함.
  • Dsound 로 WAV 파일을 가져와 출력 하도록함, 백그라운드와 클릭 시 나오는 소리 2가지.
  • 상단 30px 안에서 마우스 왼쪽 클릭 해서 끌면 창 전체가 이동 하도록 함.
  • 렌더링을 thread 로 하도록 함.
  • 약간의 UI 적인 요소.

 별 대단한 기법이 들어 간 것은 아닙니다만, DirectX 2D 와 Dsound 겹쳐서 쓰는 예제들이 너무 없어서 직접 병합 해 보았습니다.

 소스는 MinGW-W64 에서 빌드 되도록 되어 있으며, Code::Blocks 의 프로젝트를 사용하고 있습니다. 소스파일에 추가 된 것은 Windows Wave 파일을 가져와 쓰도록 한 것이 포함 되면서 압축 파일이 커졌습니다.


 소스코드는 아래 첨부되는 zip 파일을 참조 하시기 바랍니다.

dx7test1-e01.zip

 * 컴파일 된 바이너리는 포함 하고 있지 않습니다.


약간의 수정 포인트

 해당 소스 중 main.cpp 내에 const int refWidth 와 refHeight 로 시작 되는 윈도우 크기를 정할 수 있습니다. 혹시 이 방법이 싫다면 const int 를 int 로 변경 후, WinMain() 에 처음 부분에 refWidth = GetSystemMetrics(SM_CXSCREEN); refHeight = GetSystemMetrics(SM_CYSCREEN); 과 같이 데스크탑 전체 크기로 변경 하거나, 1/2 로 줄이는 등의 가변적인 처리를 할 수 있습니다.