|
알려드린 GetDC를 잘 활용하여 해결하셨군요. ^^
그런데 Canvas->Handle값을 설정하는 것은 포인터에 값을 대입하는 것이지
다른 메모리에 화면의 모든 픽셀을 옮겨 저장하는 방식이 아니기 때문에
메모리 낭비는 없다고 생각합니다. ^^
아무튼 수고하세요~ ^ㅡ^
이성제 님이 쓰신 글 :
: 이렇게 쓰면 모든 픽셀을 가져 오기 때문에 메모리상 효율적이지 못해서
:
: 한 픽셀만을 가져오고 싶습니다. ㅎ
:
: 자답이지만 해결법을 찾았네요 ^^
:
: HDC hDC = GetDC(0);
: Int Color = GetPixel(hDC, 0, 0);
:
: 쥐르미온 님이 쓰신 글 :
: : 바탕화면의 Canvas 객체를 얻으면 해결되는 문제이군요.
: : 이럴 경우 Canvas 포인터를 만들고, Canvas의 Handle값에 스크린 전체의 핸들을 넣으면 됩니다.
: :
: : HDC ScreenHandle = GetDC(0); // GetDC의 parameter 0은 모니터 스크린 전체를 의미합니다.
: : TCanvas *myCanvas = new TCanvas;
: : myCanvas->Handle = ScreenHandle;
: :
: : 이렇게 하신 뒤에 원래 하고자 하시던 작업을 수행하시면 됩니다.
: :
: : 성제님과 같이 다음과 같은 작업을 하고 싶다면,
: : : 특정 포인트의 픽셀을 뽑아 오고 싶은데요.
: : :
: : : Canvas->Pixels[12][12];
: : 우리가 만든 코드에서는 myCanvas->Pixels[12][12];
: : 를 추가로 입력해주면 화면상의 (12,12) 점의 값을 알 수 있겠지요. ^^
: :
: : 이성제 님이 쓰신 글 :
: : : 바탕화면에서
: : :
: : : 특정 포인트의 픽셀을 뽑아 오고 싶은데요.
: : :
: : : Canvas->Pixels[12][12];
: : :
: : : 이렇게 하면 제 폼에 해당 하는 부분만 나오잖아요.
: : :
: : : 전체 화면을 해당 하게 하고 싶은데
: : :
: : : 어떻게 해야 할까요
|