각종 윈도우 영역 크기 얻기( 윈도우 해상도, 작업 표시줄 제외 영역, 트레이영역)

[현재 윈도우 해상도 얻기]

1. GetSystemMetrics()

int nWidth = GetSystemMetrics( SM_CXFULLSCREEN );
int nHeight = GetSystemMetrics( SM_CYFULLSCREEN );

2. GetWindowRect()

CRect rect;
::GetWindowRect( ::GetDesktopWindow(), &rect);

3. EnumDisplaySettings()

DEVMODE mode;
::EnumDisplaySettings( NULL, ENUM_CURRENT_SETTINGS, &mode );
UINT nWidth = mode.dmPelsWidth;
UINT nHeight = mode.dmPelsHeight;

[작업 표시줄을 제외한 윈도우 영역 크기 얻기]

CRect rect;
SystemParametersInfo( SPI_GETWORKAREA, 0, &rect, 0 );

[트레이 영역 크기 얻기]

HWND hTrayP = ::FindWindow( "Shell_TrayWnd", NULL );
HWND hTrayC = ::FindWindowEx( hTrayP, NULL, "TrayNotifyWnd", NULL );

if( hTrayC )
{
    ::GetWindowRect( hTrayC, &rect );
}


퍼옴 http://purelab.org/zbxe/?mid=guruin&listStyle=list&document_srl=1942


Visual Studio 2008 에서 DirectShow Filter 개발환경 구축하기 삽질

시중에 나온 DirectShow 서적을 보면 예제가 모두 Visual C++ 6.0 기반으로 작성되어 있고 개발환경을 구축하는 방법 역시 VC++ 6.0 기준으로 되어있다. 따라서 이 글은 초보자가 최신 환경에서 DirectShow Filter를 개발할 수 있도록 개발환경을 구축하는 정보를 제공하기 위해 작성되었다.

DirectShow를 기반으로 한 애플리케이션을 개발하기 위해서는 일반적으로 아래와 같은 파일들이 필요하다. 하지만 아래 파일들이 버전이 바뀌어 감에 따라 이리저리 옮겨가고 심지어는 직접 빌드해서 사용해야 하기 때문에 사용자들에게 혼란을 주고 초보자가 개발환경을 구축하는데 어려운 점이 발생해 흔히 말하는 '삽질'을 하게 된다. (-_-;)

 종류파일 명 비 고
헤더 파일
(Include File)
 dshow.h 
 라이브러리 파일
(Library File)
 strmiids.lib 
 quartz.lib 
 strmbasd.lib (Debug 용)
 strmbase.lib (Release 용)
 

DirectShow는 DirectX에 포함되어 배포되어 왔으나DirectX 9.0 SDK (February 2005)를 마지막으로 이후부터 Windows SDK에 포함되기 시작하였다. 따라서 February 2005 이후 버전의 개발환경을 설정을 하려면 다른 방법을 사용해야만 한다.  

MSDN에 DirectShow 관련 페이지에 있는 안내 구문
http://msdn.microsoft.com/en-us/library/dd375454(VS.85).aspx
Previous versions of the DirectShow SDK shipped as part of the DirectX SDK. The last version of the DirectX SDK that included DirectShow was "DirectX 9.0 SDK Update - (February 2005) Extras." The DirectShow SDK was moved to the Windows SDK starting with the Microsoft® Windows Server 2003 SP1 Platform SDK. To get the latest DirectShow SDK, download the latest version of the Windows SDK.

기준 환경 : Windows XP 이상, Visual Studio 2005, 2008 이상

1. Microsoft SDK 와 Microsoft DirectX 를 다운로드 받는다.


2. Microsoft SDK 와 Microsoft DirectX 를 설치한다.


3. Visual Studio 2008에 포함파일(Include File)과 라이브러리 파일(Library File) 경로를 등록해 준다.

Visual Studio 2008 메뉴에서 도구 < 옵션 < 프로젝트 및 솔루션 < VC++ 디렉토리에서

포함파일(Include File)을 선택한 후 아래의 경로를 추가해 준다.

  • 설치된 Microsoft SDK 경로\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses
  • 설치된 Microsoft DirectX SDK 경로\Include
  • 설치된 Microsoft SDK 경로\Windows\v6.0\Include

    라이브러리 파일(Library File)을 선택한 후 아래의 경로를 추가해 준다.
    • 설치된 Microsoft DirectX SDK 경로\Lib\x86
    • 설치된 Microsoft SDK 경로\Windows\v6.0\Lib\x86


    4. BaseClasses 빌드

    이전 버전의 DirectShow에서는 strmbasd.lib 파일이 함께 포함되어 있지만 Windows SDK로 옮겨진 후에는 이 파일을 등록된 라이브러리 디렉토리 안에서 찾을 수 없다. 따라서 아래 경로에 있는 BaseClasses 샘플을 빌드하여 라이브러리 디렉토리로 옮겨서 사용하여야만 한다.

    먼저 설치된 Microsoft SDK 경로\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses 경로에 있는 프로젝트를 연다.

    Debug 모드로 빌드 후 아래와 같이 Debug 디렉토리 내 strmbasd.lib 파일이 생성된 것을 확인 할 수 있다. Release 모드로 빌드한 경우 역시 Release 디렉토리 내 strmbase.lib 파일이 생성되어 있을 것이다.

    각각 두 파일의 용도는 서로 다르다. 디버그 모드에서 라이브러리를 링크할 때는 strmbasd.lib, 릴리즈 모드에서 라이브러리를 링크할 때는  strmbase.lib를 사용하면 된다.


    strmbasd.lib 파일과 strmbase.lib 파일을 "설치된 Microsoft SDK 경로\Windows\v6.0\Lib" 로 옮긴다.
    2~3까지 과정은 VS 2008의 VC++ 모든 프로젝트에 해당되므로 한번만 작업해주면 된다.

    5. 개발환경 구축 완료

    여기까지 DirectShow Filter를 개발하기 위한 개발환경을 구축하는 법을 알아보았다. 다음에는 간단한 필터 제작을 해보면서 개발환경이 잘 작동하는지 확인해 보도록 하겠다.

    출처 : http://hyukmini.tistory.com/15

     



    노자본 대검성 1일차 던파야그

    17 LV
    먹은거라곤 앵그리 로크 합성법,요정시대반지
    gg 돈 10만원 모음 노자본이라 더럽게 빡친다~!아오

    울학교는 이제 벚꽃이 흩날리는군아. Fantsy Life

    후덜덜

    벌쉐끼들이 너무 마니 돌아 다녀 벌집 같음.

    JLPT D-3 Fantsy Life

    JLPT 2급 모의고사에 절망했다!!!




    후덜덜 합격선 겨우 턱걸이 시간도 겨우겨우..


    후아~!ㅇ_ㅇ 이건 머 그냥 놀고 먹었더니...



    피똥싸겠구나!!


    막판역전이라도..




    1 2 3