自定义鼠标加载
有三个方法:    
          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);    
            }     
 
阅读更多
文章标签: styles api
想对作者说点什么? 我来说一句

自定义绘制鼠标

2012年03月04日 2KB 下载

没有更多推荐了,返回首页

不良信息举报

自定义鼠标加载

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭