posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

(搬运工)ShowCursor的问题

Posted on 2010-11-02 19:21 点点滴滴 阅读(687) 评论(0)  编辑 收藏 引用 所属分类: 02 编程语言
函数功能:该函数显示或隐藏光标。
函数原型:int ShowCursor(BOOL bShow);
参数:
         bShow:确定内部的显示计数器是增加还是减少,如果bShow为TRUE,则显示计数器增加1,如果bShow为FALSE,则计数器减1。
返回值:返回值规定新的显示计数器。
备注:该函数设置了一个内部显示计数器以确定光标是否显示,仅当显示计数器的值大于或等于0时,光标才显示,如果安装了鼠标,则显示计数的初始值为0。如果没有安装鼠标,显示计数是C1。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:user32.lib。


正在开发个程序,需要隐藏鼠标,但发现ShowCursor经常会不管用。查了一下,好像SHOWCURSOR是要配对使用的,也就是说连续两个ShowCursor(true)之后,需要连续两个ShowCursor(false)。所以最好自己在外部进行一个计数或布尔值来匹配是否隐藏,(注意默认鼠标是显示的)

网上的一段示例代码

/// 光标计数
BOOL G_bShowCursor = TRUE;
void ShowCursor( BOOL bShow )
{
   
if ( bShow && !G_bShowCursor )
   {
    ::ShowCursor( TRUE );
    G_bShowCursor 
= TRUE;
   }
   
else if ( !bShow && G_bShowCursor )
   {
    ::ShowCursor( FALSE );
    G_bShowCursor 
= FALSE;
   }
}