본문 바로가기

Programming/MFC

[MFC] 커서 바꾸기

1. 리소스에 커서 파일 추가


2. 헤더 파일에 HCURSOR 변수 선언

 HCURSOR   m_hHandNormalCursor,m_hHandClickCursor;// 마우스 커서

3. Cpp파일에 다음과 같이 코딩

int CTestDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

..........


//IDC_HAND_NORMAL, IDC_HAND_CLICK : 커서 파일의 uID

 m_hHandNormalCursor = AfxGetApp()->LoadCursor(IDC_HAND_NORMAL);
 m_hHandClickCursor   = AfxGetApp()->LoadCursor(IDC_HAND_CLICK);

..........

}


4. WM_SETCURSOR 이벤트 추가, 코딩

BOOL CTestDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
    // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
    if (pWnd)
    {
        switch (pWnd->GetDlgCtrlID()) {
              case IDU_EXCEL_BTN_SEND:                 // 비트맵 버튼 uID
              case IDU_EXCEL_BTN_DONGBO_HEAD:   // 비트맵 버튼 uID
                    SetCursor(m_hHandNormalCursor);    // 커서 핸들
              return TRUE;
              }
    }

    return COleControl::OnSetCursor(pWnd, nHitTest, message);
}

대충 이런식이다.