Почему LoadImage загружает мой значок 16x16 как 32x32? - PullRequest
0 голосов
/ 04 ноября 2019

Позвольте мне начать с того, что я новичок в C ++ и MFC.

Последние несколько дней я пытался отобразить значок 16x16 в своей клиентской области, хотя он отображает правильное изображение. , значок всегда масштабируется до 32x32 и выглядит искаженным. Я искал и пробовал разные способы LoadIcon, LoadImage, но, похоже, ничего не работает.

Вот пример LoadImage:

m_icon1 = (HICON)::LoadImage(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 16, 16, 0);
int xIcon = GetSystemMetrics(SM_CXSMSIZE);
int yIcon = GetSystemMetrics(SM_CYSMSIZE);
CRect rect;
GetClientRect(&rect);
int xx = (rect.Width() - xIcon  + 1) / 2;
int yy = (rect.Height() - yIcon  + 1) / 2;
dc.DrawIcon(xx, yy, m_icon1 );

IconInfo:

IconInfo

Вот окно, левый значок 32x32, а правый 16x16, как вы можете видеть, они имеют одинаковый размер. Я ставлю разные цвета для каждого размера, просто чтобы быть уверенным.

Icon comparison

Я что-то не так делаю?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...