2011-02-16 3 views
-1

WS_EX_LAYERED 확장 스타일 집합이있는 계층화 된 폼이 있습니다. CreateWindowEx (...) API 함수를 사용하여 자식 "편집"컨트롤을 만들었습니다. 그곳에는 컨트롤이 있지만 페인트되지 않고 아무것도 폼에 나타나지 않습니다.C에서 계층화 된 창에서 알파 블렌딩 된 컨트롤

맨 위 창에 WS_EX_LAYERED 스타일을 사용하면 WM_PAINT 메시지가 더 이상 전송되지 않으며 두 자식 컨트롤이 메시지를받지 못하여 왜 나타나지 않는지 알고 있습니다.

양식의 불투명도가 255로 설정되고 배경이 UpdateLayeredWindow (...) API를 사용하여 투명 이미지로 그려지는 것을 고려하십시오.

내가 EDIT 컨트롤 위로 마우스를 가져 가면 텍스트 커서가 나타나고 그 안에 텍스트를 복사 할 수 있습니다.

내가 처리해야하는 문제는 어떻게 든 사용자 페인트를 허용하는 컨트롤을 만드는 것이라고 생각합니다.

양식과 같은 기술로 컨트롤을 페인팅했는데 폼에서 호환되는 DC를 만들었지 만 이것이 가능할 지 모르겠다. 내 컨트롤이 아직 그려지지 않았다. .

해당 컨트롤에 대한 WM_PRINTCLIENT를 보내면 작동해야합니까? 이 경우 DC는 계층화 된 상위 형식이어야합니다. 나는 또한 이것을 시도했지만 그것을 작동하게 만들 수 없었다.

정규형 : http://img580.imageshack.us/i/formy.png/

층 형태 : http://img6.imageshack.us/i/layeredform.png/

내 질문 난 내 편집 컨트롤은 알파 혼합 사용자 페인트를 받아 어떻게해야합니까? 어떻게 계층화 된 폼에 알파 블렌드 컨트롤을 페인트합니까? 내가 UpdateLayeredWindow을 적용 할 때 내가 그것을 할 수있는 방법을 발견 결국

답변

-1

은, 내가해야 할 일을했을 것

는 ... 각 컨트롤의 비트 맵 이미지를 얻을 및 양식의 배경을 그릴 수 있도록하는 것이 었습니다 양식에 대한 양식 비트 맵은 모든 컨트롤을 포함

이 방법은 잘 작동

하지만 가장 좋은 방법인지 난 아직도 모르겠어요하지만 난 혼합 더 상호 작용 + 알파를 완벽하고 추가해야 컨트롤 .. 반면에 기능은 거기에있다

여기에 있습니다 : http://img84.imageshack.us/img84/3172/73845647.png

+0

질문에 응답 – dst

+0

컨트롤을 그리는 방법에 대한 코드를 제공 할 수 있습니까? – Patrik

관련 문제