我现在用MFC做一个简单的图形绘制程序。1)想在绘制不同图像时用不同的鼠标图形,如何更改鼠标的图标?  
2) 绘制图像时,如何控制鼠标只能在 图像绘制客户区内移动。

解决方案 »

  1.   

    HCURSOR hCursor;
    hCursor=AfxGetApp()->LoadCursor(IDC_HAND);//载入鼠标指针样式
    SetCursor(hCursor);//设定鼠标指针样式
      

  2.   

    函数:
    BOOL ClipCursor ( CONST RECT *lpRect );   参数*lpRect,指向鼠标活动矩形区域的指针;返回值为布尔型,表示锁定成功与否。  实例:  在窗口中放置两个Button,名称为LockMouse和UnLockMouse。  源程序为: 
    //将鼠标锁定在固定区域
    void CmyTestDlg::OnLockMouse()
    {
    RECT Rect;
    BOOL bLock;
    Rect.left=10;//设置锁定区域大小;
    Rect.top=10;
    Rect.right=200;
    Rect.bottom=200;
    bLock:=ClipCursor(&Rect); // 限制鼠标移动区域
    if (block)
    MessageBox("鼠标固定在指定区域!");
    }   将鼠标锁定解锁,其实质是将鼠标锁定在整个屏幕区
    void CmyTestDlg::OnLockMouse()
    {
    RECT Rect;
    BOOL bLock;
    Rect.left=0;//设置锁定区域大小;
    Rect.top=0;
    Rect.right=600;
    Rect.bottom=800;
    Block=ClipCursor(&Rect);
    if (block)
    MessageBox("鼠标固定在屏幕区域!");
    }   运行程序,单击LockMouse,此时鼠标锁定在固定区域中;再单击UnLockMouse键鼠标锁定解锁。当然还可以采用别的方法将鼠标来解锁,如将鼠标锁定在某一个窗口来对鼠标解锁。
      

  3.   

    我是在MDI程序,view的客户区里进行绘制。 如何控制鼠标在绘制(设置flag,判断是否在绘制)的时候只能在view的客户区里移动。
      

  4.   

    响应WM_SETCURSOR消息
    根据不同的状态改变鼠标
      

  5.   

    我是新手,请问应该在那个类(view? doc ? childfram?)里响应WM_SETCURSOR 消息,设置鼠标?