提问人:Luther Baker 提问时间:9/6/2008 最后编辑:Roger LipscombeLuther Baker 更新时间:3/30/2010 访问量:1969
用于拖动拆分器的鼠标光标的 Win32 资源在哪里?
Where's the Win32 resource for the mouse cursor for dragging splitters?
问:
我正在构建一个自定义的 win32 控件/小部件,并希望将光标悬停在控件中的特定垂直线上时将光标更改为水平“拆分器”符号。IE:我想向左和向右(WEST 和 EAST)拖动这条垂直线(拆分条)。
在系统游标 (OCR_*) 中,唯一有意义的游标是OCR_SIZEWE。不幸的是,这是系统在调整窗口大小时使用的一个大而笨拙的光标。相反,我正在寻找大约 20 像素高、大约 3 或 4 像素宽的光标,有两个小箭头指向左右。
我可以很容易地绘制它并将其作为资源包含在我的应用程序中,但光标本身非常普遍,我想确保它没有遗漏某些内容。
例如:当您使用 COM 拖放机制(CLSID_DragDropHelper、IDropTarget 等)时,您可以隐式访问“拖放”图标(指针下方的小框)。我没有看到这个家伙的明确 OCR_* 常数......同样,如果我无法完全找到这个拆分器光标,我想知道它是 COM 对象的一部分还是 win32 库中的其他内容。
答:
整个 Windows UI 中使用了各种图标、光标和图像,这些图标、光标和图像不对第三方软件公开可用。当然,您仍然可以加载它们所在的模块并使用它们,但实际上不能保证您的程序在系统更新/升级后会继续工作。
包括你自己的。你最不想做的就是在一个小光标上添加一个额外的依赖项。
我遇到了这个确切的问题。当我回顾一些垂直拆分器的旧代码时,以为我有一个简单的答案,结果发现我已经构建并加载了自己的资源:
SetCursor( LoadCursor( ghInstance, "IDC_SPLITVERT" ));
我依稀记得我投入了相当多的时间和精力来寻找系统方法,所以(我的猜测)是没有一个现成的系统图标来完成这项工作,所以你最好自己滚动。
这是我想犯错的时候之一,因为我希望这份工作有一个系统图标。
评论