Q&A

  • 좀 도와 주세요...
안녕하세요..

꼭 좀 도와주세요..

부탁드려요...

델파이 폼상에서는 칼라값을 구하는 것을 알아냈구요...

windows 상에서는 어떻게 구하는걸 해야 되거든요....

좀더 바란다면.. 어느 곳에대도 칼라값을 구할 수가 있을까요..

1  COMMENTS
  • Profile
    도지성 2001.01.18 18:57


    빈 폼에 버튼을 하나 올려 놓고 다음 이벤트를 연결합니다..



    procedure TForm1.Button1Click(Sender: TObject);

    var

    Canvas : TCanvas;

    DC : hDC;

    x, y : Integer;

    begin

    DC := GetDC( 0 );

    Canvas := TCanvas.Create;

    Canvas.Handle := DC;



    for y := 0 to 100 do

    for x := 0 to 100 do begin

    Form1.Canvas.Pixels[x,y] := Canvas.Pixels[x,y];

    end;



    Canvas.Free;

    ReleaseDC( 0, DC );

    end;



    클릭을 해보면 Windows 화면의 (0,0) 에서 (100,100) 까지의

    Pixel 을 읽어서 자신의 Form 의 (0,0) 에서 (100,100) 에

    찍어 주게 될 것입니다.



    핵심은



    DC := GetDC( 0 );



    Canvas.Handle := DC;

    죠..



    Window handle 이 0 번이면 전체 window 가 됩니다..

    그래서 전체 윈도우에 대한 device context 를 얻어서

    그것을 TCanvas 의 handle 에 대입만 해주면 되는 겁니다.

    그래서 Canvas.Pixels[x,y] 로 window 어디에든 컬러를

    얻을 수 있죠.



    물론 마지막에 DC 를 꼭 해제 하시길..



    미니 wrote:

    > 안녕하세요..

    > 꼭 좀 도와주세요..

    > 부탁드려요...

    > 델파이 폼상에서는 칼라값을 구하는 것을 알아냈구요...

    > windows 상에서는 어떻게 구하는걸 해야 되거든요....

    > 좀더 바란다면.. 어느 곳에대도 칼라값을 구할 수가 있을까요..