Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[12822] Re:Re:Re:[재질문]그럼 AlphaBlending처럼 할 수 있는 방법이나 컴포넌트가 있나요?
장성호 [nasilso] 3200 읽음    2009-07-27 13:32
님께서 무얼 만드시려지?
왜 AlphaBlending기능이 필요한지 궁금하네요..

앞에 답변에 설명이 조금 잘못되었네요
다시 말씀드리면 Window-Handle이 있는 Contorl의 경우 (Form이나 Frame , Panel, Edit 등등..)
Parent가 없는 즉 독립도니 Window이어야   Win32에서 제공하는 방식으로 AlphaBlending이 가능합니다.
다른 방식으로는 쉽지 않습니다.

그래도 굳이 AlphaBlending을 하고 싶다면..

[방법1]
  ; 위 설명에 답이 하나 있는데요...
    Handle이 있는 Control이기때문에 AlphaBlending이 제대로 안되는것이므로
    Handle이 없는 GraphicControl을 이용하면 가능하다는 얘기가 되겠죠..

       Graphic-Control은 자신을 나타낼 dc가 없으므로
        Parent되는 WinControl의 dc에가다 자신을 draw해줍니다.
        Parent의 dc에다가 draw해줄때 Alphablending으로 draw해주면 되겠죠..

[방법2]
   ; 편법인데요..
   ; Form을 이용합니다.
     독립된 Form으로 AlphaBlending기능을  만듭니다.
     하지만 마치 MainForm의 안에 있는 Panel같은 Control처럼 보이도록 만들어야겟쬬
      - 독립된 폼이 MainForm의 Client영역 안에서만 움직어야 할것이며
      - MainForm안에 있는 Control처럼 MainForm이 Colos되거나 Maximize/minimiz될때 동기되어야겟쬬..
      (이부분도 삽질일듯...)

[방법3]
    - 버벅 거리고 ,까다롭고 좋지 않는 방법인데요...
    - Panel을 이용한다고 하구요...
    - Panel의  PAINT  메세지에서 .. 메모리 DC를 하나 생성하여서..
    - Panel의 Parent-Control의 이미지를 가져옵니다.
        (이때 Panel자신을 포함하여 자신보다 ZOrder가 높은 놈은 빠지도록 해야겠죠)
    - 가져온 image에다가  자신의 image와 AlphaBlending합니다.
    - 그런후에 자신의 DC에 Draw해줍니다.


   [방법4]
       ...
       ...   

프로그램의 목적에 따라 맞는 방법이 다를것인데요
   추천1. 가능하면  AlphaBlending을  안쓴다.
   추천2. AlphaBleing을 지원하는 GraphicControl을 이용한다.


그럼..
   

김현승 님이 쓰신 글 :
: 답글 감사합니다.
: 저렇게 하는것을 포기 할 수 없어 다시 질문드립니다.
: 사실 Panel에 저렇게 할 수 있다면 좋겠는데...안되서 저렇게 해 볼려고 했었는데....
:
: Panel이나 Frame이나 등등에 저렇게 투명도를 조절할 수 있는 컴포넌트나 방법이 있나요??
:
: 아시는 분있으시면 답글 부탁드립니다.
:
:
:
: 장성호 님이 쓰신 글 :
: : 안됩니다.
: :
: : DesktopWindow를 WndParent로 가진 윈도우(작업표시줄에 나타나는..) 인경우에만
: : 일반적인 방법으로 AlphaBlending이 적용됩니다.
: :
: : 그럼..
: :
: :
: : 김현승 님이 쓰신 글 :
: : : 안녕하세요
: : :
: : : fsMDIChild에 대해서 폼에 투명도를 조절 하고 싶습니다.
: : : AlphaBlend를 true로 한 후, AlphaBlendValue값을 조절하는 방식으로 투명도를 조절 하고 싶은데...
: : : fsMDIChild에서는 조절이 안되네요...
: : :
: : : fsMDIForm에서 조절을 하면 잘 됩니다. 문제는 fsMDIChild 폼까지 모두 적용이 된다는 것이 문제고 또하나는 부모 폼은 투명도를 조절할 필요가 없거든요...
: : :
: : : 자식폼만 조절을 하고 싶은데...답변 두탁드립니다.

+ -

관련 글 리스트
12819 [질문]fsMDIChild의 AlphaBlend를 이용해서 투명도를 조절 할 수 있나요? 김현승 2342 2009/07/25
12820     Re:[질문]fsMDIChild의 AlphaBlend를 이용해서 투명도를 조절 할 수 있나요? 장성호 2020 2009/07/27
12821         Re:Re:[재질문]그럼 AlphaBlending처럼 할 수 있는 방법이나 컴포넌트가 있나요? 김현승 1851 2009/07/27
12822             Re:Re:Re:[재질문]그럼 AlphaBlending처럼 할 수 있는 방법이나 컴포넌트가 있나요? 장성호 3200 2009/07/27
12823                 답변감사합니다.방법을 더 생각해봐야겠습니다. 김현승 1664 2009/07/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.