怎么全屏隐藏鼠标,我是过用ShowCursor(FALSE)了。这个只能在一个Dialog上隐藏。不是全屏隐藏。我的要求是
只是隐藏鼠标不让鼠标显示。但是鼠标好要动作。就是左键右键都能用。
另外,不可以做透明的鼠标,因为我还要去的当前的鼠标图像。要把当前的鼠标头像画的另一个图像上。想实现扩大镜的功能。

解决方案 »

  1.   

    网上搜的:
    创建一个透明窗口,面积只有一个点,置于桌面的顶层。然后调用ShowCursor函数,把鼠标设为隐藏。当我们真的要隐藏鼠标的时候,就把这个窗口移到鼠标那儿,然后锁定鼠标位置,这样神不知鬼不觉的鼠标就没了。解除隐藏的时候更简单,直接把这个窗口设为不可见就行了。http://blog.csdn.net/Slin000/archive/2009/05/07/4157221.aspx
      

  2.   

    提供一个思路 做一个屏幕大小的透明窗体 DLG 然后设置ShowCursor(FALSE)
      

  3.   

    这方法不行,我试过了。
    ShowCursor(FALSE),在鼠标设置成穿透后就不好用了。
      

  4.   

    SetCursel(FALSE)全屏可以隐藏的啊,你在哪里设置的,我以前做过和你一样要求的
      

  5.   

    提供个思路,在WM_MOUSEMOVE里判断是否在屏幕范围之内,在则SHOWCURSER(FALSE),你试试看行不行
      

  6.   

    窗口带边框不?
    要不带边框的话,先全屏窗口,再用SetCursel(FALSE)不行吗?
      

  7.   


    我不是做橡皮,画笔。
    我就需要隐藏。因为我还要取得当前的鼠标图像有用。所以不能更改当前鼠标图像。否则取得就是自己改过的了。我想做像Win7的扩大镜全画面表示时的功能。
      

  8.   

    还是不明白LZ的意思
    LZ 是不是多个窗体叠加?
      

  9.   


    我最终想实现的是Win7扩大镜的全画面表示功能。
      

  10.   

    个人意见:我没用过WIN7,不知道它的放大镜是什么样的。
    只能凭自己想象。把鼠标图像换成圆形——放大镜的边框。
    取得圆形范围内的底下的图像,进行放大,将放大后的结果填充在放大镜范围内。
    圆形的圆心是鼠标焦点,左右键消息应该都好用。没有实际试过,不知道好不好用。
    希望能够有所帮助。
      

  11.   


    HCURSOR hc=LoadCursor(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDC_CURSOR1));
    ::SetCursor(hc);
      

  12.   

    我说的穿透就是指对对话框设置了WS_EX_TRANSPARENT属性
      

  13.   

    你倒是跟我正相反,我只是用了ShowCursor(FALSE);结果就是你说的那种效果,左右键都能用,然后鼠标移动到哪,菜单会呈选中状态说明有作用,我想做的就是把这个效果去除!
      

  14.   

    在主程序APP.CPP的InitInstance()
    {
    .........
    .........
    CWinAppEx::InitInstance(); //整个程序隐藏鼠标光标
    //ShowCursor(FALSE);            AfxEnableControlContainer();
    ..........
    ..........
    }
    不知道是不是楼主要的效果
      

  15.   

    怎么都说的那么复杂呀!!显示或隐藏鼠标就是ShowCursor()MSDN: -------------------------------------------------------------------------------------ShowCursor
    The ShowCursor function displays or hides the cursor. int ShowCursor(
      BOOL bShow   // cursor visibility
    );
    Parameters
    bShow 
    [in] Specifies whether the internal display counter is to be incremented or decremented. If bShow is TRUE, the display count is incremented by one. If bShow is FALSE, the display count is decremented by one. 
    Return Values
    The return value specifies the new display counter. Res
    This function sets an internal display counter that determines whether the cursor should be displayed. The cursor is displayed only if the display count is greater than or equal to 0. If a mouse is installed, the initial display count is 0. If no mouse is installed, the display count is –1. 
    所以并不是调用了ShowCursor(TRUE)就能让鼠标显示出来的,只要它的计数器>=0时,才能显示出来。同理,如果调用了多次ShowCursor(FALSE),那么只有调用多次ShowCursor(TRUE)后,才有可能让鼠标显示出来。