Загрузить курсор с определенным разрешением

У меня есть два ресурса курсора. Первый [IDC_CURSOR1] содержит три разных типа изображений:

  • 32 x 32, 24 бит/с
  • 48 x 48, 24 бит/с
  • 64 x 64, 24 бит/с

Второй [IDC_CURSOR2] содержит только один:

  • 48 x 48, 24 бит/с

Если я вызываю LoadCursor(hInst, IDC_CURSOR1), он всегда загружает версию 32x32, и я не смог найти способ загрузить версию 48x48 или 64x64. Во втором случае загружается значок 48x48 (потому что другой версии нет), но масштабируется до 32x32.

Как загрузить курсор с разрешением, отличным от 32x32?

Кстати: я пытался изменить DPI, потому что, согласно msdn, он должен автоматически загружать курсор с более высоким разрешением в более высоком dpi, но это не так.

Благодарю вас!


person Tutankhamen    schedule 20.06.2016    source источник


Ответы (1)


Вызовите LoadImage, минуя IMAGE_CURSOR и указав нужные размеры.

Cursor = (HCURSOR)LoadImage(hinst, IDC_CURSOR1, IMAGE_CURSOR, 64, 64, LR_DEFAULTCOLOR);
person David Heffernan    schedule 20.06.2016
comment
Благодарю вас! Имена функций MS API настолько очевидны: D - person Tutankhamen; 20.06.2016
comment
Вы читали документацию для LoadCursor? Он направляет вас к LoadImage. - person David Heffernan; 20.06.2016
comment
Ой, я не видел этого, потому что это было упомянуто в начале :) - person Tutankhamen; 20.06.2016
comment
Я всегда так делаю, но иногда получается обратный эффект, когда автор пытается что-то выделить и часть текста выглядит по-другому, т.е. становится невидимой... - person Tutankhamen; 20.06.2016