如何改变光标的形状?

hdxhan 2004-09-24 11:20:21
我想在鼠标左键按下的时候将光标变成十字的形状,如何做?用什么函数啊
...全文
270 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
property1 2004-09-24
  • 打赏
  • 举报
回复
//可以先定义
// 光标
private :
HCURSOR m_hCursor ;
// 鼠标按下标志
private :
bool bDowning = false ;

// 在初始化时 :
OnInitialUpdate()
{
CView::OnInitialUpdate();
this->m_hCrossCursor = ::LoadCursor(NULL, IDC_CROSS) ;
this->m_bDowning = false ;
}

// 设置光标
OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
if (nHitTest == HTCLIENT && m_bDowning)
{
::SetCursor(this->m_hCursor);
return true ;
}
return CView::OnSetCursor (pWnd, nHitTest, message) ;
}

// 设置标志
OnLButtonDown(UINT nFlags, CPoint point)
{
m_bDowning = true ;
CView::OnLButtonDown(nFlags, point);
}
hdxhan 2004-09-24
  • 打赏
  • 举报
回复
按1楼的试了一下,怎么鼠标左键按下时,光标消失了?
Alvin665 2004-09-24
  • 打赏
  • 举报
回复
::SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR));
Mr-Chen 2004-09-24
  • 打赏
  • 举报
回复
如果要使用自定义的图标

static HCURSOR hCursorPen;

在窗体创建时
hCursorPen = ::LoadCursor(AfxGetApp()->m_hInstance, "UserCursor");
...
设置
BOOL CDlgBasedDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
::SetCursor(hCursorPen);
return true ;
}
Mr-Chen 2004-09-24
  • 打赏
  • 举报
回复
直接使用系统图标就行了:

BOOL CDlgBasedDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
SetCursor(LoadCursor(NULL, IDC_CROSS));
return true ;//注意这一句
}
handwolf 2004-09-24
  • 打赏
  • 举报
回复
同意楼上的!
不过在OnLButtonUp中要m_bDowning = false;

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧