让windows 8上的光标变大
Make the windows cursor bigger on windows 8
我想让窗口光标变大。我有一个c++ windows应用程序与以下代码,我劫持了类似的问题。我正在从.cur文件中加载一个游标。
已尝试此链接:Windows光标的最大大小无法决定答案是"不可能"还是"可能"。
我已经尝试过了,它不在windows 8上工作->我正在加载一个128x128的文件,它仍然看起来很小(32x32)。有人能发布一些对他们有用的东西吗?
// load cursor resource into hCursor
HCURSOR ghTouchCursor = (HCURSOR)LoadImage(NULL, L"NormalHand.cur", IMAGE_CURSOR, 0,0, LR_LOADFROMFILE);
// must copy cursor, windows is a pita...
HCURSOR ghCopyTouchCursor = CopyCursor(ghTouchCursor);
// set the cursor as the new full-screen cursor
SetSystemCursor(ghCopyTouchCursor, 32512);
我也试过像这样调用加载图像,没有区别。
HCURSOR ghTouchCursor = (HCURSOR)LoadImage(NULL, L"NormalHand.cur", IMAGE_CURSOR, 128,128, LR_LOADFROMFILE);
GetSystemMetrics(SM_CXCURSOR)返回32,但根据官方网站:"SetSystemCursor…您可以使用此函数设置任意大小的游标。"
似乎大家都认为"不可能"。
最大游标大小取决于系统
系统支持的光标的像素大小可以通过调用GetSystemMetrics
来获取,SM_CXCURSOR
调用宽度, SM_CYCURSOR
调用高度。
如msdn所述,这是系统在创建游标时可以使用的仅大小,这意味着如果您在调用LoadImage
时使用更大的大小将被忽略。
有其他解决方案吗?
如果你想要一个更大的光标,但是系统不允许你创建一个,另一个选择是隐藏当前的光标,并在光标实际所在的地方浮动一个图像。
这样用户会认为光标已经改变了,但实际上光标是不可见的,并且在它的位置上设置了一个图像。
我知道这个问题是针对Windows 8的,但这个问题在2021年仍然出现,而在Windows 10中拥有一个大光标是非常可能的。
关于LoadImage(这里)的宽度和高度参数的最新文档说明:
图标或光标的宽度,以像素为单位。如果该参数为零,且fuLoad参数为LR_DEFAULTSIZE,则该函数使用SM_CXICON或SM_CXCURSOR系统度量值来设置宽度。如果该参数为零且不使用LR_DEFAULTSIZE,则该函数使用实际资源宽度。
所以如果你传入0的宽度和高度和不传入LR_DEFAULTSIZE
它将使用资源的大小。因此,如果你的光标中有一个64x64的图像,即使系统指针是32x32,它也会以这个大小显示。
的例子:
HCURSOR custom_cursor = (HCURSOR)LoadImage(hInstance, MAKEINTRESOURCE(IDC_CURSOR1), IMAGE_CURSOR, 0, 0, 0);
SetCursor(custom_cursor);
作为奖励,这也尊重了windows中的易于访问设置,因此如果用户将默认光标设置为更大,则光标的大小将增加。
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 在Linux for Windows上编译C++代码时出错
- 如何在Qt C++中更改光标
- 在Windows上用C++裁剪HBITMAP
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 如何加载(或映射)文件部分的最大大小,但适合在Windows上的RAM
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- Windows/Cygwin - 不能使用 pybind11 - 犯错误
- Windows 10-使用gtkmm-3.0库和g++[包括再现]的分段故障
- 在Windows中以.exe的形式运行c++
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 无法在windows控制台中为C++程序提供必要的输入
- Windows 函数"GetCursorInfo"返回成功,但光标的句柄为 NULL
- 如何使用mouseevent在windows登录屏幕中移动鼠标光标
- 如何通过C++Windows控制台修改光标
- 让windows 8上的光标变大
- 如何在Windows中从鼠标挂钩设置光标位置?
- 捕捉动画系统光标在Windows上显示的步骤