Когда я устанавливаю курсор для своего окна, используя встроенные типы курсоров, такие как IDC_HAND
или IDC_ARROW
, он отлично работает, например:
SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_HAND)));
но при импорте ресурса курсора (либо загруженного файла курсора, либо сделанного на заказ, либо просто путем создания нового ресурса курсора с помощью VS) курсор не изменится, например:
SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDI_ICON1)));
OR
SetCursor(LoadCursor(NULL, MAKEINTRESOURCE(IDC_CURSOR1)));
resource.h
#define IDI_ICON1 101
#define IDC_CURSOR1 102
resource.rc
IDI_ICON1 ICON "custom_cursor.cur"
IDC_CURSOR1 CURSOR "cursor1.cur"
Как вы видите по какой-то причине мой пользовательский курсор сохраняется как "ICON" в resource.rc
IDC_CURSOR1
сделан из инструмента ресурсов VS, но ни один из них не работает, кроме встроенных курсоров.
Когда курсор запуска программы не изменяется, вместо него отображаются черные стрелки, но если использовать для ex IDC_ARROW
или IDC_HAND
, тогда он работает.
что может быть причиной того, что вы не сможете использовать пользовательские курсоры.
кстати. Я могу установить пользовательский курсор в настройках мыши Windows, но он не работает в VS.
EDIT:
Я только что узнал, что загрузка курсора из файла работает. например:
LoadCursorFromFile(L"custom_cursor.cur");
Но загрузка из ресурса не работает, я предпочитаю, чтобы ресурсы были скомпилированы в исполняемый файл, поэтому я все еще ищу ответ.