2011-04-08 3 views
4

Shadow for custom mouse cursor 질문에 대한 답변을 읽은 후 몇 가지 테스트를 수행했습니다.사용자 정의 마우스 커서 그림자 (2)

내 델파이 애플리케이션에서 32 비트와 24 비트 버전의 커서를로드했습니다. 결코 그림자. 나는 표준 Windows 화살표 포인터를 사용하여 동일한 작업을 수행했습니다. 그림자도 없습니다.

또한 반대쪽을 시도하고 Windows 마우스 설정의 "일반 선택"포인터에 사용자 지정 커서를 할당했습니다. 24 비트와 32 비트 포인터는 모두 그림자가있었습니다.

커서에 알파 채널이 있으면 그림자 동작에 영향을주지 않는 것으로 보입니다. 그러나 신청서에서 내가 뭘 잘못하고 있니?

첫 번째 단계는

CUR_EDGE_R Cursor DISCARDABLE "edge_r.cur" 

와 함께 .RC 파일을 통해 응용 프로그램의 리소스에 커서를 추가하고 응용 프로그램이로드됩니다 : 그래서

const 
    crEdgeR = TCursor(135); 
. 
. 
    Screen.Cursors[crEdgeR] := LoadCursor(HInstance, 'CUR_EDGE_R'); 

, 방식은 무엇인가 Windows가 사용자 정의 커서에 그림자를 추가하게합니까?

참고 : 사용자 설정에 따라 마우스 커서의 두 가지 버전 (하나는 그림자가있는 버전과 그림자가없는 버전)을 만들고 해당 커서를로드하라는 인터넷 게시물을 보았습니다. 이것은 이 아니고 내가 찾고있는 해결책입니다.

+0

어떤 델파이 버전을 사용하고 있습니까? – Pol

+0

사용자가 참조하는 질문에 대한 대답과 관련하여 [다음] (http://support.microsoft.com/kb/307213/ko) 매우 혼란 스럽습니다. * "참고 : 아래의 그림자에 대한 시스템 설정 커서에 알파 채널 (32 BPP) "*가 있으면 마우스 포인터가 무시됩니다. –

+0

@ Pol : Delphi 7과 Delphi 2009 모두. Windows 7에서 개발 중이지만 응용 프로그램은 XP에서도 작동해야합니다. @Sertac Akyuz : 예. 그러나 그것이 어떻게 무시되는지는 밝히지 않았다. (계속 켜져있을 수 있습니다.) –

답변

0

사용자 정의 커서 아래에 그림자를 배치하려면 Alpha 채널 (반투명을 가능하게 함)로 커서를 디자인하고 그림자를 그려야합니다. Photoshop/GIMP (또는 다른 유능한 그래픽 편집기)를 사용하여 커서를 "그림자 효과"로 생성하고 PNG로 저장 한 다음 아이콘 편집기 (예 : Microangello)를 사용하여 PNG를 커서로 변환 할 수 있습니다 .

Windows Vista/7과 함께 제공되는 커서는 시스템 효과를 사용하여 그림자를 생성하는 "평면"으로 설계되지 않았습니다.

+0

제안 해 주셔서 감사합니다. 그러나 당신이 깨달은 것처럼, 나는 그 시스템이 그림자를 그려 내길 원합니다. 내 테스트 (세 번째 단락 참조)는 Windows _can_가 그림자를 추가하고 마우스 속성 창에있는 시스템 커서에 커서 (알파 채널의 유무와 관계없이 항상 그림자가 없음)를 할당 할 때이를 수행함을 보여줍니다. 내 응용 프로그램에서이 사용자 지정 커서를로드 할 때이 그냥 발생하지 않습니다. –

관련 문제