WINCE 隐藏鼠标
关于将鼠标隐藏的问题,我在网上搜了一下相关的资料。大多数都是用ShowCursor(BOOL bShow)这个函数去实现。但是在我测试的时候却发现:在窗体创建之前和该窗体的每条消息处理操作之前都ShowCursor(FALSE);开始弹出窗体的时候确实看不到鼠标,点击操作也没有发现鼠标的影子,但是在刷屏的时候可恶的鼠标又出现了(例如将窗体最小化再最大化)。
据说FrameWork下面的Cursor.Hide()可以实现隐藏鼠标,由于没有环境也没有测试过。不过在EVC中我无意中发现了一个办法可以真正实现鼠标的隐藏:就是用系统函数SetCursor(NULL);
我是在窗体创建之前用上述函数设置了一把,编译好测试。最大化最小化,鼠标果然没有出现。
测试过:不行,有时候还是会出现
http://topic.csdn.net/u/20070907/16/6b68ee8f-4f29-453c-94e2-60b86e6d8d7f.html
隐藏鼠标其实挺简单的,两种方法:
1.真隐藏:ShowCursor(FALSE);//隐藏鼠标
2.假隐藏,就是在程序启动时,将鼠标定位在屏幕右下角,在程序应用过程中可以随时调用鼠标(呵呵治标不治本)
::SetCursorPos(m_FullScreenRect.right, m_FullScreenRect.bottom);
以下方法是在编译内核时设置的:
Core OS -> CEBASE -> Shell and User Interface -> User Interface 把mouse选项去掉编译,就可以把鼠标干掉
把显示驱动s3c2410disp.cpp文件的movepoint函数中把以下代码屏蔽掉也行。
if (xPosition != -1 || yPosition != -1)
{
m_CursorRect.left = xPosition - m_CursorHotspot.x;
m_CursorRect.right = m_CursorRect.left + m_CursorSize.x;
m_CursorRect.top = yPosition - m_CursorHotspot.y;
m_CursorRect.bottom = m_CursorRect.top + m_CursorSize.y;
CursorOn();
}
我在800x480的屏上使用下面三句话好像就可以了,目前测试没太大问题
ShowCursor(FALSE);
SetCursor(NULL);
::SetCursorPos(820, 500);