Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从HCURSOR获取游标类型_C++_Windows_Winapi - Fatal编程技术网

C++ 从HCURSOR获取游标类型

C++ 从HCURSOR获取游标类型,c++,windows,winapi,C++,Windows,Winapi,我从另一个进程中得到一个HCURSOR。我想找到它的类型。 它的资源就是这些 我在MSDN站点中四处查看,并没有找到任何关于如何获取HCURSOR资源id的信息。 我该怎么做 谢谢你。你不需要。游标不一定有资源ID(例如,您可以在内存中创建游标) 您可能可以尝试从已知资源ID创建游标,然后将它们与所讨论的HCURSOR进行比较。(系统游标应与加载映像(…,LR_SHARED)一起使用),因此多个调用应返回相同的句柄。)您不需要。游标不一定有资源ID(例如,您可以在内存中创建游标) 您可能可以尝试

我从另一个进程中得到一个HCURSOR。我想找到它的类型。 它的资源就是这些

我在MSDN站点中四处查看,并没有找到任何关于如何获取HCURSOR资源id的信息。 我该怎么做


谢谢你。

你不需要。游标不一定有资源ID(例如,您可以在内存中创建游标)


您可能可以尝试从已知资源ID创建游标,然后将它们与所讨论的
HCURSOR
进行比较。(系统游标应与加载映像(…,LR_SHARED)一起使用),因此多个调用应返回相同的句柄。)

您不需要。游标不一定有资源ID(例如,您可以在内存中创建游标)



您可能可以尝试从已知资源ID创建游标,然后将它们与所讨论的
HCURSOR
进行比较。(系统游标应与
LoadImage(…,LR_SHARED)一起使用
,因此多个调用应返回相同的句柄。)

我使用的是自己的软件游标,因此SetCursor对我来说是无用的。你说“来自另一个进程”是什么意思?你为什么“想找到它的类型”?你心目中还有什么比HCURSOR更具体的类型?@cheers-sandhth.-Alf我基本上想检查HCURSOR是否是系统默认的箭头、大小、移动、等等……这没有什么意义。您可以从资源中获取光标,这是一种方法。您无法从游标获取资源ID。这是一个合法的问题,在关闭之前,它吸引了一个很好的答案,这将有助于未来的访问者。它不应该被关闭。我正在使用我自己的软件游标,所以SetCursor对我来说没用。你说“来自另一个进程”是什么意思?你为什么“想找到它的类型”?你心目中还有什么比HCURSOR更具体的类型?@cheers-sandhth.-Alf我基本上想检查HCURSOR是否是系统默认的箭头、大小、移动、等等……这没有什么意义。您可以从资源中获取光标,这是一种方法。您无法从游标获取资源ID。这是一个合法的问题,在关闭之前,它吸引了一个很好的答案,这将有助于未来的访问者。它不应该关闭。我无法控制其他进程。我得到一个像MAKEINTRESOURCE(hCursor)这样的id;与msdn站点中列出的id不同。但指针大小总是5我们总是13等等。。。即使程序重新启动,这些值也不会更改。我列出了这些,以便以后比较。这似乎可行,这是有效的方法吗?将
HCURSOR
句柄传递给
MAKEINTRESOURCE()
是错误的。您应该使用已知ID调用
LoadImage()
,然后查看返回的
HCURSOR
值是否与您已有的值匹配,例如:
HCURSOR hSysCursor=(HCURSOR)LoadImage(NULL,MAKEINTRESOURCE(OCR\u NORMAL),IMAGE\u CURSOR,0,0,LR\u SHARED);如果(hCursor==hSysCursor){…}
`.@RemyLebeau我试过LoadCursor(NULL,IDC_箭头)并且可以工作,它比LoadImage简单。@user1633272 LoadCursor文档说:“注意:这个函数已经被LoadImage函数取代了。”我无法控制其他进程。我得到一个像MAKEINTRESOURCE(hCursor)这样的id;与msdn站点中列出的id不同。但指针大小总是5我们总是13等等。。。即使程序重新启动,这些值也不会更改。我列出了这些,以便以后比较。这似乎可行,这是有效的方法吗?将
HCURSOR
句柄传递给
MAKEINTRESOURCE()
是错误的。您应该使用已知ID调用
LoadImage()
,然后查看返回的
HCURSOR
值是否与您已有的值匹配,例如:
HCURSOR hSysCursor=(HCURSOR)LoadImage(NULL,MAKEINTRESOURCE(OCR\u NORMAL),IMAGE\u CURSOR,0,0,LR\u SHARED);如果(hCursor==hSysCursor){…}
`.@RemyLebeau我试过LoadCursor(NULL,IDC_箭头)并且可以工作,它比LoadImage简单。@user1633272 LoadCursor文档说:“注意:这个函数已经被LoadImage函数取代了。”