在特定的hwnd(窗口句柄)下更改游标?

时间:2015-05-28 09:39:59

标签: c# c++ wpf

我想知道是否可以仅在特定窗口句柄下更改光标图标?

我希望光标只在指向窗口时显示加载(我有它的句柄),并且会在窗口外返回正常。

我不在任何类型的控制台app / window app / wpf下。

所以我试着这样做:

IntPtr cursr = LoadCursor(IntPtr.Zero, 32512);
bool retVal = SetSystemCursor(cursr, 32514);

但光标全局更改。尝试...最终将无法正常工作,因为如果我在finally块运行之前杀死窗口,光标将永远停留在加载中。

然后在hwnd下更改光标的任何方法吗?

我在c#工作,但c ++也没关系,因为我只是做pinvoke。

THX!

1 个答案:

答案 0 :(得分:0)

C ++回答:

使用CreateWindow创建窗口时,会为其指定一个类名(lpClassName)。此名称应该先前已在RegisterClass注册。 RegisterClass函数采用WNDCLASS参数,其参数为hCursor。这是指针进入窗口时使用的光标。有关完整流程的更多信息here

C#回答:

设置System.Windows.FrameworkElement的{​​{3}}属性,用于您想要的任何元素。