마우스 커서로 지정한 것은 아니고, 메모리로 마우스 커서 이미지를 로드하고 그 핸들을 얻는 것이다.
지정된 파일로부터(*.cur,*.ani) 마우스 커서를 로드한다
● 선언
Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
● 인수
lpFileName ━ 마우스 커서 파일명(*.cur,*.ani)
● 반환
성공 ━ 로드한 커서의 핸들
실패 ━ Null
다음은 소스이다.
' 애니메이션 커서(*.ani) 파일 사용하기
Option Explicit
DefLng A-Z ' a에서 z로 시작하는 변수를 Long 형으로 한다
Private PreviousCoursorHandle ' 이전 커서 핸들
Private AniCursorHandle ' 에니메이션 커서 핸들
Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
Private Sub cmdEndAni_Click() ' 원래 커서로 복귀
Call ReleaseCapture ' 캡처 중지
Call SetCursor(PreviousCoursorHandle) ' 원래 커서로
cmdEndAni.Enabled = False
cmdStartAni.Enabled = True
End Sub
Private Sub cmdEndAni_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdEndAni_Click
End Sub
Private Sub cmdStartAni_Click() ' 에니메이션 커서 지정
Call SetCapture(cmdEndAni.hwnd) ' 폼을 벋어나도 마우스 커서 움직임을 얻도록 한다, 따라서 폼을 벋어나도 마우스 커서가 변경되지 않도록 한다
PreviousCoursorHandle = SetCursor(AniCursorHandle) ' 커서를 로드한 커서로 지정한다
cmdEndAni.Enabled = True
cmdStartAni.Enabled = False
End Sub
Private Sub Form_Load()
AniCursorHandle = LoadCursorFromFile(App.Path & "\macwait.ani")
cmdEndAni.Enabled = False
End Sub
'API' 카테고리의 다른 글
EnumDisplayDevices를 사용한 디스플레 장치 정보 얻기 (0) | 2011.09.28 |
---|---|
WM_MOUSEWHEEL 윈도우 메세지를 사용한 휠 버튼 사용 (0) | 2011.09.26 |
MakeSureDirectoryPathExists를 사용한 경로에 포함된 모든 디렉토리 생성 (0) | 2011.09.25 |
waveOutSetVolume을 사용한 사운드 볼륨 조정 (0) | 2011.09.24 |
waveOutGetNumDevs를 사용한 사운드 카드수 얻기 (0) | 2011.09.24 |