|
세즈 님이 쓰신 글 :
: 마우스 포인터 따라다니면서 그위에 그림파일을 무조건 Top에 띄우는 방법은 없습니까?
:
: 십자표시의 그림파일이 마우스를 따라다니며 모든 프로그램보다 위에!!! 최 상위로 플로팅 하면서 따라다니게 하려면 어찌 해야되나요?
:
: 그것을 구현하려면 마우스포인터의 절대좌표를 구해오는 수식과 폼을 이동하는 함수가 있을듯 한데...
:
: 그쪽에도 여러가지가 있더군요
:
: GetCursorPos 라던지...
:
: 근데 이런 저런것들에서 딜레이 없이 바로바로 잘 따라다니게 하려면 어떤 방법으로 어떤 함수를 써서 해야 마우스 커서 위에 딱 붙어서 따라다니는 그림을 만들수 있을까요?
:
: 딜레이가 문제입니다 딜레이가...
:
: 게다가 해당 프로그램을 사용중에만 그렇게 뜨는것이 아니라
: 익스플로러를 사용할때도 위에 뜨고
: 다른 프로그램에서도 위에 뜨게 하고 싶은데
:
: 많은 조언 부탁드립니다.
:
: 추신: 이 문제는 아래문제보다는 덜 급해요 ;ㅅ;
: 집에가고 싶어요 ;ㅅ;
: 춥고 배고파요 ;ㅅ;
아래 예에서 마우스 커서의 폭과 높이는 마음대로 할 수 있습니다.
즉, 커서의 소스인 Bitmap의 크기를 마음대로 할 수 있음.
다만, 용도에 맞는 크기여야 보기에 좋겠지요.
HBITMAP hbmp = LoadBitmap(HInstance,MAKEINTRESOURCE(ID_MY_BITMAP));
ICONINFO ici;
ici.fIcon=FALSE;
ici.xHotspot=0;
ici.yHotspot=0;
ici.hbmMask=hbmp; //TBitmap를 이용하는 경우에는 TBitmap::Handle을 사용
ici.hbmColor=hbmp;
HCURSOR hMyCursor = (HCURSOR)CreateIconIndirect(&ici);
if(hMyCursor)
{
//SetSystemCursor의 두번째 인자에 지정할 수 있는 커서 id는 winuser.h를 참고
//OCR_NORMAL 등등의 id를 사용하려면 OEMRESOURCE가 defined 되어 있어야 함
//OEMRESOURCE를 define 하지 않으려면 SetSystemCursor(hMyCursor2,(int)IDC_BEAM);의 형식으로.
//여기에서는 커서를 하나만 생성했으나 보통은 각 용도에 맞는 커서를 별도로 만들어 지정하는 게 좋겠지요.
SetSystemCursor(hMyCursor,OCR_NORMAL);
//SetSystemCursor(hMyCursor2,OCR_IBEAM);
//SetSystemCursor(hMyCursor3,OCR_WAIT);
}
else
{
//커서 생성 불가
}
|