游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1822|回复: 2

怎么让鼠标在客户区隐藏,但到了非客户区又显示出来

[复制链接]

2

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-1-14 17:08:00 | 显示全部楼层 |阅读模式

我尝试了这样做:

switch(message)
{

case WM_NCMOUSEMOVE:
{
MessageBox(NULL, NULL, "NCMOUSEMOVE", NULL); // 能跳出警告框,但鼠标就是不显示
ShowCursor(TRUE);
break;

case WM_MOUSEMOVE:
ShowCursor(FALSE);
break;

case...// 其他消息

}

请达人指教啊

2

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-1-14 17:21:00 | 显示全部楼层

Re:怎么让鼠标在客户区隐藏,但到了非客户区又显示出来

...

已经解决了。.

不能一直FALSE一直FALSE,或者一直TRUE一直TRUE....


晕啊。..占了版面,对不起大家

96

主题

529

帖子

539

积分

高级会员

Rank: 4

积分
539
发表于 2005-1-17 13:25:00 | 显示全部楼层

Re:怎么让鼠标在客户区隐藏,但到了非客户区又显示出来

原因很简单啊。因为弹出窗口消失前MessageBox一直不返回,所以一直没有显示鼠标,而你关闭MessageBox时,鼠标在客户区中,所以ShowCursor(TRUE)代码一执行完程序又收到WM_MOUSEMOVE消息,又执行了ShowCursor(FALSE),在这极短的一瞬间,你当然看不出有显示了。
你把MessageBox去掉,就OK。

你说的对,ShowCursor是切换状态,所以不用一直调用。
if(bShow)
{
ShowCursor(FALSE);
bShow = FALSE;
}


...


if(!bShow)
{
ShowCursor(TRUE);
Show = TRUE;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-24 03:15

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表