日期:2014-05-19  浏览次数:20714 次

csdn上真的没有高手了么?
如何使光标在屏幕任何任何位置都是等待状态,而不是在当前窗体或是某个控件上???

------解决方案--------------------
WinForm or WebForm?
------解决方案--------------------
我记得你好像问过一次呀,怎么还没解决吗?
------解决方案--------------------
虽然不知道怎么来实现,但是觉得这样做没有多大的必要.
------解决方案--------------------
API就ok了
------解决方案--------------------
好难啊~
------解决方案--------------------
调用 Win32 API
SetCursor(IntPtr hCursor); //in user32.dll
不行吗?
------解决方案--------------------
实在不行,那就做一个全屏的窗体,把屏幕上的整个位图用Graphics.CopyFromScreen 方法复到其上,然后设置这个窗体的鼠标光标就是了.
------解决方案--------------------
更改鼠标的指针。

在程序把正常状态下鼠标换成等待状态,当程序做完事后或关闭程序再换回来(这个一定要做)

为什么要做这个事情啊?
------解决方案--------------------
调用 Win32 API 应该没问题,具体我也没试
------解决方案--------------------
顶一个
------解决方案--------------------
比较无聊的问题。还有一个比较无聊的客户。
------解决方案--------------------
商务做的没到位吧?
感觉客户是故意刁难了,要不然这客户也太有个性了
------解决方案--------------------
高手是有的,但是不是我~~~~~~
------解决方案--------------------
进来看高手~
------解决方案--------------------
up
------解决方案--------------------
我也进来看高手~
------解决方案--------------------
//高手都忙去赚钱了,剩下我们这些不是高手的傻傻在这里混点不能换人民币的分

[DllImport( "User32.DLL ")]
public static extern bool SetSystemCursor(IntPtr hcur, uint id);
public const uint OCR_NORMAL = 32512;
public const uint OCR_IBEAM = 32513;
[DllImport( "User32.DLL ")]
public static extern bool SystemParametersInfo(uint uiAction, uint uiParam,
IntPtr pvParam, uint fWinIni);
public const uint SPI_SETCURSORS = 87;
public const uint SPIF_SENDWININICHANGE = 2;
private void button1_Click(object sender, EventArgs e)
{
//设置
SetSystemCursor(Cursors.WaitCursor.CopyHandle(), OCR_NORMAL);
SetSystemCursor(Cursors.WaitCursor.CopyHandle(), OCR_IBEAM);
//..可以根据情况加
}

private void button2_Click(object sender, EventArgs e)
{
//恢复
SystemParametersInfo(SPI_SETCURSORS, 0, IntPtr.Zero, SPIF_SENDWININICHANGE);
}

------解决方案--------------------
从USER32.DLL里面导两个进来。
------解决方案--------------------
mark