WinAPI / WPF: установить системный курсор только для приложения

У меня есть приложение, пользовательский интерфейс которого отображается с темой. Я также хочу добавить новые нестандартные курсоры (например, курсоры изменения размера, когда пользователь намеревается изменить размер окна), чтобы соответствовать этой теме.

С функцией WinAPISetCursor Я могу только изменить указатель по умолчанию для приложения, но этого недостаточно, поэтому я посмотрел вверхSetSystemCursor который работает просто отлично. Проблема в том, что последняя версия постоянно меняет общесистемные курсоры, но я хочу, чтобы они менялись только для моего приложения.

Я думал о копировании предыдущих курсоров, прежде чем сделатьSetSystemCursor и сбрасывать их при выходе из приложения, но даже когда я реализую обработчик завершения, он может не вызываться, если процесс, например, просто вылетает. Кроме того, курсоры будут по-прежнему изменяться в масштабе всей системы, пока работает приложение.

Специально для курсоров изменения размера, я мог бы просто отбросить стиль окна, сделать окно без границ и сам визуализировать / реализовать ручки изменения размера и логику (тогда я мог бы просто подключить события при наведении курсора мыши), но это на самом деле мой последний курорт - я бы предпочел узнать, возможно ли достичь своей цели, прежде чем я сделаю эту громоздкую задачу ...

Для всех, кто интересуется: пользовательский интерфейс отображается с WPF, но WPF также не предоставляет эту функцию (опять же, они есть, но только для указателя по умолчанию). Мне не нужно использовать WinAPI или другие «низкоуровневые» вызовы, если мне нужно, но на данный момент, похоже, нет ни одного, который бы соответствовал моим потребностям :(

Так что, если кто-нибудь знает, как изменить другие системные курсоры (не указатель по умолчанию) в WPF или WinAPI только для моего приложения, не прибегая к реализации настраиваемой логики курсора для моего окна только для этого, вы бы сделали мой день.

Ответы на вопрос(1)

Ваш ответ на вопрос