api -캐럿(Caret)
캐럿이란? 워드프로세서나 익스플러로 입력창에 보면 깜박깜박 거리는 모양을 캐럿이라고 부른다.
커서는 마우스 포인터을 이야기 합니다.
그럼 캐렛에 대해서 간단히 요약해 보겠습니다.
-----------------------------------------------------------------------------
CreateCaret(); 캐럿을 만들어 줍니다.
SetCaaretPos(); 캐럿의 좌표을 설정합니다.
ShowCaret(); 캐럿을 보여줍니다.
HideCaret(); 캐럿을 숨긴다.
DestroyCaret(); 캐럿을 삭제합니다.
-----------------------------------------------------------------------------
캐럿을 사용하기 위해서는 WM_SETFOCUS , WM_KILLFOCUS 를 같이 사용합니다.
WM_SETFOCUS 는 현재 프로그램을 선택하였을경우 실행합니다.
WM_KILLFOCUS 는 현재 프로그램 이외의 프로그램을 선택하였을경우 실행합니다.
간단히 말하자면 현재윈도우을 선택하면 실행하고 다른윈도우을 선택하면 종료한다는 말과 같다.
캐럿 생성함수
-----------------------------------------------------------------------------
BOOL CreateCaret(
HWND hwnd,
HBITMAP hbmp,
int nWidth,
int nHeight
);
-----------------------------------------------------------------------------
hWnd : 핸들
nbmp : 비트맵 핸들을 지정한다.
nWidth : 캐럿의 넓이
nHeight : 캐럿의 높이
캐럿 위치함수
-----------------------------------------------------------------------------
BOOL SetCaretPos(
int nX, // x 좌표
int nY // y 좌표
);
-----------------------------------------------------------------------------
캐럿 보이기
-----------------------------------------------------------------------------
BOOL ShowCaret(
HWND hwnd
);
-----------------------------------------------------------------------------
캐럿 숨기기
-----------------------------------------------------------------------------
BOOL HideCaret(
HWND hwnd
);
-----------------------------------------------------------------------------
캐럿 삭제하기
-----------------------------------------------------------------------------
BOOL DestroyCaret( VOID );
-----------------------------------------------------------------------------
간단한 예제
-----------------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
case WM_SETFOCUS:
CreateCaret(hWnd,NULL,10,20);
SetCaretPos(10,10);
ShowCaret(hWnd);
return 0;
case WM_KILLFOCUS:
HideCaret(hWnd);
DestroyCaret();
return 0;
}
return(DefWindowProc(hWnd,message,wParam,lParam));
}
-----------------------------------------------------------------------------
위 예제을 실행하면 캐럿이 깜박거리느것을 볼수 있다.
그상태에서 다른윈도우을 선택하면 캐럿이 사라지는것을 볼수 있다.
출처 : http://www.qdata.co.kr/bo/bbs/board.php?bo_table=api&wr_id=80
'나머지 > IT개발.잡다한것.' 카테고리의 다른 글
visual C ++ 6.0 -> 비주얼 스튜디오 2010 으로 변환시 유의사항 (0) | 2012.09.13 |
---|---|
visual studio 6.0 을 안쓰는이유 (2) | 2012.09.13 |
MessageBox 에서 에러남 @ 비쥬얼 스튜디오 2010 (0) | 2012.09.12 |
비쥬얼 C 버전 (0) | 2012.09.11 |
C언어 영상처리 라이브러리 (0) | 2012.09.11 |