반응형


http://warmz.tistory.com/872


CView 클래스에서 WM_SETCURSOR 메시지를 추가하고 아래와 같이 사용한다.

선언

1
2
3
4
5
6
7
8
9
10
11
12
13
// Cursor Style for Shape control
enum CursorStyle {
    CursorArrow = 0,
    CursorCross,
    CursorInputText,
    CursorSizeAll,
    CursorSizeNESW,     // 우측상단에서 좌측하단
    CursorSizeNS,       // 수직
    CursorSizeNWSE,     // 좌측상단에서 우측하단
    CursorSizeWE        // 수평
};
 
HCURSOR m_CursorStyleList[8];

아이콘 할당

1
2
3
4
5
6
7
8
9
10
11
CTestView::CTestView()
{
    m_CursorStyleList[CursorArrow] = LoadCursor(NULL, IDC_ARROW);
    m_CursorStyleList[CursorCross] = LoadCursor(NULL, IDC_CROSS);
    m_CursorStyleList[CursorInputText] = LoadCursor(NULL, IDC_IBEAM);
    m_CursorStyleList[CursorSizeAll] = LoadCursor(NULL, IDC_SIZEALL);
    m_CursorStyleList[CursorSizeNESW] = LoadCursor(NULL, IDC_SIZENESW);
    m_CursorStyleList[CursorSizeNS] = LoadCursor(NULL, IDC_SIZENS);
    m_CursorStyleList[CursorSizeNWSE] = LoadCursor(NULL, IDC_SIZENWSE);
    m_CursorStyleList[CursorSizeWE] = LoadCursor(NULL, IDC_SIZEWE);
}

아이콘 지정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
BOOL CDrawingToolView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
    CPoint pt;
     
    GetCursorPos(&pt);
    ScreenToClient(&pt);
 
    if(m_rect.PtInRect(pt))
    {
        SetCursor(m_CursorStyleList[CursorSizeAll]);
    }
    else
    {
        return __super::OnSetCursor(pWnd, nHitTest, message);
    }
 
    return TRUE;
}
 


아이콘의 종류




*손모양은 IDC_HAND

반응형

+ Recent posts