Прозрачность значка в контекстном меню
От: Winand  
Дата: 15.12.11 12:23
Оценка:
Делаю 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, которая изначально (судя по тому что я наковырял в ресурсах их библиотеки) имеет нужный цвет фона. Но это как-то странно имхо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.