Делаю contextmenuhandler для проводника (тестирую в Windows 7 x64), в примере написано
// Load the bitmap for the menu item.
// If you want the menu item bitmap to be transparent, the color depth of
// the bitmap must not be greater than 8bpp.
m_hMenuBmp = LoadImage(g_hInst, MAKEINTRESOURCE(IDB_OK),
IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADTRANSPARENT);
потом добавляем пункт в меню
MENUITEMINFO mii = { sizeof(mii) };
mii.fMask = MIIM_BITMAP | MIIM_STRING | MIIM_FTYPE | MIIM_ID | MIIM_STATE;
mii.wID = idCmdFirst + IDM_DISPLAY;
mii.fType = MFT_STRING;
mii.dwTypeData = m_pszMenuText;
mii.fState = MFS_ENABLED;
mii.hbmpItem = static_cast<HBITMAP>(m_hMenuBmp);
if (!InsertMenuItem(hMenu, indexMenu, TRUE, &mii))
{
return HRESULT_FROM_WIN32(GetLastError());
}
но никакой прозрачности нет. Вроде мелочь, но хотелось бы разобраться как нужно сделать
При чем цвет меняется. как видно из рисунка, но почему-то на белый.
Ниже есть иконка TeraCopy, которая изначально (судя по тому что я наковырял в ресурсах их библиотеки) имеет нужный цвет фона. Но это как-то странно имхо.