我正在构建一个自定义的win32控件/窗口小部件,并希望将鼠标悬停在控件中的特定垂直线上时将光标更改为水平“拆分器”符号。 IE:我想左右拖动这条垂直线(分割条)(WEST和EAST)。
在系统游标(OCR_ *)中,唯一有意义的游标是OCR_SIZEWE。不幸的是,这是系统在调整窗口大小时使用的大而笨拙的光标。相反,我正在寻找大约20像素高,大约3或4像素宽的光标,左右两个小箭头。
我可以轻松地绘制它并将其作为资源包含在我的应用程序中,但光标本身非常普遍,我想确保它没有丢失一些东西。
例如:当您使用COM拖放机制(CLSID_DragDropHelper,IDropTarget等)时,您可以隐式访问“拖动”图标(指针下方的小框)。我没有看到这个人明确的OCR_ *常量......所以同样,如果我无法直接找到这个分割器光标,我想知道它是否是COM对象的一部分或win32 lib中的其他内容。 / p>
答案 0 :(得分:4)
Windows UI中使用的各种图标,光标和图像都不可供第三方软件公开使用。当然,您仍然可以加载它们所在的模块并使用它们,但实际上并不能保证您的程序在系统更新/升级后仍能继续工作。
包括你自己的。你想要的最后一件事是在一个小小的光标上增加一个额外的依赖。
答案 1 :(得分:0)
我遇到了这个问题。当我回顾一些旧的代码以寻找垂直分离器时,我有一个简单的答案,结果发现我已经构建并加载了我自己的资源:
SetCursor( LoadCursor( ghInstance, "IDC_SPLITVERT" ));
我依旧记得花了相当多的时间和精力来找到系统的方法,所以(我的猜测)是没有一个系统ICON随时可以完成这项工作,所以你最好不要自己动手。
这是我想错的时候之一,因为我希望有一个系统图标来完成这项工作。