|
아, 덕분에 쉽게 해결했습니다.. ^^;
RePaint할 때 약간의 껌뻑거림이 있지만 이 정도면 무난하겠네요.
감사합니다~~~ ^^
장성호 님이 쓰신 글 :
: 간단하게..
:
: 1. TImage 대신 TBitmap을 이용하세요
:
: 2. Form의 MouseMove때 Form의 Canvas에 그리는 내용 그대로
: Bitmap의 Canvas에 그려주시구요
:
: 3. Form의 OnPaint 이벤트에서
: Canvas->Draw(0,0,bitmap); 해주시구요
:
: minimize와 다른윈도우에 덮인것의 차이에 대해선 정확하게는 잘모릅니다만
:
: AlphaBlend 가 true인경우
: 다른윈도우에 덮였을 경우에는 FormPaint이베트가 발생하지 않더군요
: 그런데 minimize상태에서 올라올때는 Paint이벤트가 발생하더군요
: (AlphaBlend=false 인 경우는 다름)
:
: 여기에 무슨 원인이 있는것 같네요
: 추측컨데.. DC가 Form이 아니라 DesttopWindow라던지..
: ..
:
: 그럼..
:
:
: 권기식.with☆ 님이 쓰신 글 :
: : 안녕하세요?
: :
: : 폼의 일부분을 마우스로 드래그해서 투명하게 만들려고 합니다.
: : 어두운 밤에 모니터의 불빛이 밝아서 최소한의 화면만 보게 하는 프로그램인데요...
: :
: : Form에 Transparent Color(clRed)를 지정하고 Ctrl 버튼을 누르고 마우스를 드래그하면 해당 영역의 Canvas을 붉은색 사각형으로 그려주었습니다.
: :
: : 일단 원하는대로는 잘 되는데요...
: : 문제는 ESC를 눌러 폼을 최소화했다가 다시 최대화할 때 그려진 사각형들이 지워진다는 것입니다.
: : 폼이 뒤로 갔다가 앞으로 올 때는 괜찮은데 말이죠.
: :
: : TImage에 그려보니 Repaint가 잘 되는 것 같은데... 깔끔하지 않은 것 같습니다 ^^;
: :
: : TRect를 배열이나 동적할당하여 기억하였다가 Repaint시 다시 그려주는 방법도 생각해봤습니다.
: :
: : 문제는 왜 가려졌다가 나타나면 정상적으로 보이는데 최소화되었다가 커지면(리사이즈) 다 지워지냐는 것입니다.
: :
: : 도움 부탁드립니다~ ^^
: :
: : 실행파일과 소스를 첨부합니다.
|