문제

WS_EX_LAYERED 확장 스타일 세트가있는 계층화 된 양식이 있습니다. CreateWindowEx (...) API 함수를 사용하여 "편집"컨트롤을 만들었습니다. 컨트롤이 거기에 있지만 페인트가 없으며 양식에 아무 것도 나타나지 않습니다.

맨 위 창에서 ws_ex_layered 스타일을 사용할 때 WM_PAINT 메시지는 더 이상 전송되지 않으며 하위 컨트롤이 표시되지 않는 이유를 수신하지 않습니다.

양식의 불투명도가 255로 설정되고 백그라운드는 UpdateLayeredWindow (...) API를 사용하여 투명한 이미지로 배경을 칠합니다.

편집 컨트롤 위로 마우스를 가져 가면 텍스트 커서가 나타나고 내부의 텍스트를 복사 할 수 있습니다.

나는 문제가 해결해야 할 문제가 어떻게 든 사용자 페인트를 받아들이는 것을 제어합니다.

나는 양식과 같은 기술로 컨트롤을 칠했고, 형태에서 호환되는 DC를 만들었지만 이것이 가능하다는 것을 모르지만, 내 통제는 여전히 그려지지 않았습니다.

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

정상적인 양식 : "Nofollow"> http://img580.imageshack.us/i/formy.png/

계층화 된 양식 : http://img6.imageshack.us/i/layeredform.png/

내 질문은 편집 컨트롤이 알파 블렌드 - 사용자 페인트를 받아 들일 수 있습니까? 계층화 된 양식에 알파 블렌드 컨트롤을 어떻게 칠합니까?

도움이 되었습니까?

해결책

결국 나는 그것을 할 수있는 방법을 발견했습니다

내가해야 할 일은 각 컨트롤의 비트 맵 이미지를 가져 와서 양식의 배경에 그려야하는 것이었습니다.

I 에 가장 좋은 방법인지 여전히 알지 못한다.

방법은 멋지게 작동하지만 완벽하게 작동해야하며 상호 작용 + 알파 블렌드 컨트롤을 추가해야합니다. 다른 한편으로는 기능이 있습니다

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top