Q&A

  • 화면따라 십자모양의 포커스를 그려내고 싶은데여...Help Me~!


isAreaSelect.Down 이 참이 되었을때.. 패널6의 표면에

|

--+--

| <-- 와 같은 화면전체의 십자모양을 마우스포커스로 주고싶습니다.



마치 오토케드 에디트시 화면의 커서를 보여주는 방법으로...

그래서 아래와 같이 패널의 무브이벤트에 API DC객체를 끌어다놓고

이리저리 사용하려 하였는데여...

화면에 표현되기는 하는데.. 마우스의 이전위치에 그려졌던 것이 지워지고

현재위치만 나오게 하려는게 목적이거덩여...

그른데 Canvas쓸때랑은 영 틀리더라구여... 사실 API는 초보걸랑여....

어떻게 하는지 갈쳐주세여... 이거때매 2틀째 고민 하구 이써염...

아래소스중 포커스 랙트(DrawFocusRect)는 재생각 되로
2  COMMENTS
  • Profile
    홍성락 2001.09.07 03:14
    조건일 wrote:

    >

    > isAreaSelect.Down 이 참이 되었을때.. 패널6의 표면에

    > |

    > --+--

    > | <-- 와 같은 화면전체의 십자모양을 마우스포커스로 주고싶습니다.

    >

    > 마치 오토케드 에디트시 화면의 커서를 보여주는 방법으로...

    > 그래서 아래와 같이 패널의 무브이벤트에 API DC객체를 끌어다놓고

    > 이리저리 사용하려 하였는데여...

    > 화면에 표현되기는 하는데.. 마우스의 이전위치에 그려졌던 것이 지워지고

    > 현재위치만 나오게 하려는게 목적이거덩여...

    > 그른데 Canvas쓸때랑은 영 틀리더라구여... 사실 API는 초보걸랑여....

    > 어떻게 하는지 갈쳐주세여... 이거때매 2틀째 고민 하구 이써염...

    > 아래소스중 포커스 랙트(DrawFocusRect)는 재생각 되로
  • Profile
    조건일 2001.09.08 07:36
    답변감사드립니다...

    이 문제 때문에 정말루 많은 시간을 썼습니다...

    나름대로 해결하려구 노력하던중 찾아 내었습니다....

    캔바스 펜에는 xor속성이 있는데 dc 핸들에도 없을리 없다고 생각해서

    이리저리 찾아헤메던중 볼씨빌더책에 아주 작게 나와 있더군요,,,



    > > dc := GetWindowDC(Panel6.Handle);

    > > Brush := SelectObject(dc, GetStockObject(NULL_BRUSH));

    > >

    > > Pen := CreatePen(PS_SOLID, 1, RGB(255, 0, 0));

    > > Pen2 := SelectObject(dc, Pen);



    > > SetROP2(dc, R2_NOTXORPEN); <<---- 이부분이 Pcanvas.pen.mode := pmNotXor;

    와 같은효과를 내도록 dc 핸들을 바꿔주더군요...



    즐프하셔염~!



    <파견맨~>



    홍성락 wrote:

    > 조건일 wrote:

    > >

    > > isAreaSelect.Down 이 참이 되었을때.. 패널6의 표면에

    > > |

    > > --+--

    > > | <-- 와 같은 화면전체의 십자모양을 마우스포커스로 주고싶습니다.

    > >

    > > 마치 오토케드 에디트시 화면의 커서를 보여주는 방법으로...

    > > 그래서 아래와 같이 패널의 무브이벤트에 API DC객체를 끌어다놓고

    > > 이리저리 사용하려 하였는데여...

    > > 화면에 표현되기는 하는데.. 마우스의 이전위치에 그려졌던 것이 지워지고

    > > 현재위치만 나오게 하려는게 목적이거덩여...

    > > 그른데 Canvas쓸때랑은 영 틀리더라구여... 사실 API는 초보걸랑여....

    > > 어떻게 하는지 갈쳐주세여... 이거때매 2틀째 고민 하구 이써염...

    > > 아래소스중 포커스 랙트(DrawFocusRect)는 재생각 되로