自定义鼠标加载

有三个方法:    
          1、在CWnd::OnSetCursor()中调用API函数SetCursor()改变光标。    
            BOOL   CMyView::OnSetCursor(CWnd*   pWnd,   UINT   nHitTest,   UINT   message)    
            {    
            if   (   m_ChangeCursor   )    
            {    
            ::SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));    
            return   TRUE;    
            }    
             
            return   CView::OnSetCursor(pWnd,   nHitTest,   message);    
            }    
          2、CWnd::PreCreateWindow()注册自己的窗口类,注册时指定光标。    
            BOOL   CMyView::PreCreateWindow(CREATESTRUCT&   cs)    
            {    
            cs.lpszClass   =   AfxRegisterWndClass(    
            CS_DBLCLKS   |   CS_HREDRAW   |   CS_VREDRAW,   //   use   any   window   styles    
            AfxGetApp()->LoadStandardCursor(IDC_WAIT),    
            (HBRUSH)   (COLOR_WINDOW   +   1));   //   background   brush    
             
            return   CView::PreCreateWindow(cs)    
            }    
          3、某些操作,程序要显示标准的漏斗光标,这时调用CCmdTarget::BeginWaitCursor(),然后调用CmdTarget::EndWaitCursor()恢复光标。    
            void   CMyView::PerformLengthyOperation()    
            {    
            BeginWaitCursor();   //   or   AfxGetApp()->DoWaitCursor(1)    
             
            //...    
             
            EndWaitCursor();   //   or   AfxGetApp()->DoWaitCursor(-1)    
            }    
             
          为了避免用户移动鼠标而触发OnSetCursor,需要::    
            BOOL   CMyView::OnSetCursor(CWnd*   pWnd,   UINT   nHitTest,   UINT   message)    
            {    
            if   (m_ChangeCursor)    
            {    
            RestoreWaitCursor();    
            return   TRUE;    
            }    
             
            return   CView::OnSetCursor(pWnd,   nHitTest,   message);    
            }     
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值