У меня есть CListCtrl в MFC, где я добавляю набор изображений размером 128x128 пикселей. Теперь я хотел бы добавить 16x16 маленький значок статуса (стиль OK/NOK) к этим изображениям. Как я могу это сделать?Добавить значок статуса в изображение в CListCtrl
ответ
Я думаю, что это может не решить вашу проблему, но находится рядом с решением.
CBitmap drawBitmap;
HICON hicon= m_pImageList->ExtractIcon(ix);
drawBitmap.Attach(hicon);
CDC dc;
dc.CreateCompatibleDC(NULL);
dc.SetBkMode(TRANSPARENT);
CPoint pt;
// do your calculations: pt will be define in what part of the image the icon will appear
DrawIcon(&dc.GetSafeHdc(), pt.x, pt.y, IDI_YOUR_ICON);
DeleteDC(dc);
m_pImageList->Replace(ix, &drawBitmap, (CBitmap*)NULL);
ix - это индекс того, который вы хотите заменить.
Я могу сказать, что я уже использовал такой подход в реальном приложении. – sergiol
Только после публикации предыдущего ответа, я обнаружил, что существует CImageList::SetOverlayImage
Чем ты. Но я не могу найти хороший пример или даже хорошую документацию о том, как это сделать, и поэтому я застрял. – manatttta
Не могли бы вы дать небольшой пример (рисунок или объяснить более), где вы хотите добавить их? – Blacktempel
[Оверлей изображений в списках изображений] (https://msdn.microsoft.com/en-us/library/az91ees4.aspx) на MSDN, по-видимому, является тем, что вам нужно исследовать. (Удалил мой ответ.) – acraig5075
@ acraig5075 эй. Я не могу найти хороший пример на этом и никакой документации вообще, и поэтому я застрял. Можете ли вы дать какие-либо указания? (Пример MSDN для меня не достаточен) – manatttta