2

我正在构建一个自定义的 win32 控件/小部件,并希望在将光标悬停在控件中的特定垂直线上时将光标更改为水平“拆分器”符号。IE:我想左右拖动这条垂直线(分隔条)(WEST 和 EAST)。

在系统游标 (OCR_*) 中,唯一有意义的游标是 OCR_SIZEWE。不幸的是,这是系统在调整窗口大小时使用的又大又笨拙的光标。相反,我正在寻找大约 20 像素高、大约 3 或 4 像素宽的光标,两个小箭头指向左右。

我可以轻松地绘制它并将其作为资源包含在我的应用程序中,但光标本身非常普遍,我想确保它没有遗漏任何东西。

例如:当您使用 COM 拖放机制(CLSID_DragDropHelper、IDropTarget 等)时,您可以隐式访问“拖动”图标(指针下方的小框)。我没有看到这个人的显式 OCR_* 常量......同样,如果我不能完全找到这个拆分器光标,我想知道它是 COM 对象的一部分还是 win32 库中的其他东西。

4

2 回答 2

4

整个 Windows UI 中使用了各种图标、光标和图像,这些图标、光标和图像对第 3 方软件不公开。当然,您仍然可以加载它们所在的模块并使用它们,但不能保证您的程序在系统更新/升级后继续工作。

包括你自己的。您想要做的最后一件事是在一个很小的光标上添加额外的依赖项。

于 2008-09-06T15:22:46.127 回答
0

我有这个确切的问题。当我回顾垂直拆分器的一些旧代码时,认为我有一个简单的答案,结果发现我已经构建并加载了自己的资源:

SetCursor(LoadCursor(ghInstance, "IDC_SPLITVERT"));

我隐约记得投入了相当多的时间和精力来寻找系统的方法,所以(我的猜测)是没有现成的系统图标来完成这项工作,所以你最好自己动手。

这是我想错的时候之一,因为我希望有一个系统图标来完成这项工作。

于 2008-09-07T06:13:19.123 回答