hi, i'm studying MFC and had a problem with cursor
I create an image control program which can zoom, rotate, panning and swapping images
I tried to change the cursor's shape for each function of my program, but it just work when no image in cell! when there are image in cell, the cursor just disappear.
Can anyone help me out. (sorry for my Eng :( )
Here is part of my code
void CImageEdittingView::SwapMouseDown(int fMouseX, int fMouseY)
{
CImageEdittingDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
if (fMouseX > pDoc->m_layout->GetInitX()&&
fMouseX < (pDoc->m_layout->GetInitX() + pDoc->m_layout->GetWidth()))
if (fMouseY > pDoc->m_layout->GetInitY() &&
fMouseY < (pDoc->m_layout->GetInitY() + pDoc->m_layout->GetHeigh()))
{
HCURSOR hSwapClose = LoadCursorFromFile("res\\cursor_drag_hand.ico");
::SetCursor(hSwapClose);
ShowCursor(TRUE);
}
}
void CImageEdittingView::SwapMouseUp(int fMouseX, int fMouseY)
{
CImageEdittingDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
if (fMouseX > pDoc->m_layout->GetInitX()&&
fMouseX < (pDoc->m_layout->GetInitX() + pDoc->m_layout->GetWidth()))
if (fMouseY > pDoc->m_layout->GetInitY() &&
fMouseY < (pDoc->m_layout->GetInitY() + pDoc->m_layout->GetHeigh()))
{
HCURSOR hSwapOpen = LoadCursorFromFile("res\\cursor_hand.ico");
::SetCursor(hSwapOpen);
ShowCursor(TRUE);
}
Graphics gr(this->GetDC()->m_hDC);
CLayout* layout = pDoc->m_layout;
int newIndex = layout->GetCellIndexFromPosition(fMouseX, fMouseY);
if(newIndex >= 0)
{
int oldIndex = layout->GetCurrCellIndex();
layout->Swap(oldIndex, newIndex);
layout->GetCell(newIndex)->Draw(&gr, GetScrollPos(SB_HORZ), GetScrollPos(SB_VERT));
layout->GetCell(oldIndex)->Draw(&gr, GetScrollPos(SB_HORZ), GetScrollPos(SB_VERT));
layout->GetCurrCell()->DrawCellBorder(&gr, CUltil::clActiveBorderColor, GetScrollPos(SB_HORZ), GetScrollPos(SB_VERT));
}
}