Я создаю пользовательский элемент управления / виджет win32 и хотел бы изменить курсор на символ горизонтального «разделителя» при наведении курсора на конкретную вертикальную линию в элементе управления. IE: я хочу перетащить эту вертикальную линию (разделительную полосу) влево и вправо (ЗАПАД и ВОСТОК).
Из системных курсоров (OCR_ *) единственный имеющий смысл курсор - это OCR_SIZEWE. К сожалению, это большой неудобный курсор, который система использует при изменении размера окна. Вместо этого я ищу курсор высотой около 20 пикселей и шириной около 3 или 4 пикселей с двумя маленькими стрелками, указывающими влево и вправо.
Я могу легко нарисовать это и включить в качестве ресурса в свое приложение, но сам курсор настолько распространен, что я хотел быть уверен, что он чего-то не упустил.
Например: когда вы используете механизм перетаскивания COM (CLSID_DragDropHelper, IDropTarget и т. д.), У вас неявно есть доступ к значку «перетаскивания» (маленькому прямоугольнику под указателем). Я не видел явной константы OCR_ * для этого парня ... Точно так же, если я не могу сразу найти этот курсор-разделитель, мне интересно, является ли он частью COM-объекта или чего-то еще в библиотеке win32.





В пользовательском интерфейсе Windows используются всевозможные значки, курсоры и изображения, которые не являются общедоступными для стороннего программного обеспечения. Конечно, вы все равно можете загрузить модуль, в котором они находятся, и использовать их, но на самом деле нет гарантии, что ваша программа продолжит работать после обновления / обновления системы.
Включите свое. Последнее, что вам нужно, - это добавить дополнительную зависимость к крошечному курсору.
У меня была именно такая проблема. Когда я просмотрел старый код вертикального разделителя, думая, что у меня есть простой ответ, оказалось, что я собрал и загрузил свой собственный ресурс:
SetCursor( LoadCursor( ghInstance, "IDC_SPLITVERT" ));
Я смутно помню, как потратил немало времени и усилий на то, чтобы найти системный способ сделать это, так что (я предполагаю), что нет доступной системы ICON для выполнения этой работы, поэтому вам лучше использовать свою собственную.
Это один из тех случаев, когда я хотел бы ошибиться, так как мне бы хотелось, чтобы для этой работы был значок системы.