Добавляю новый пункт в системное меню приложения. Вот собственно код:
| Код | var hSysMenu: HMENU; B: TBitmap; miInfo: TMenuItemInfo; begin hSysMenu := GetSystemMenu(Handle, False); InsertMenu(hSysMenu, 5, MF_BYPOSITION, SC_HELP, 'Справка'); B := TBitmap.Create; B.LoadFromFile('D:\1.bmp'); FillChar(miInfo, SizeOf(TMenuItemInfo), #0); miInfo.cbSize := SizeOf(TMenuItemInfo); miInfo.fMask := MIIM_BITMAP; miInfo.hbmpItem := B.Handle; SetMenuItemInfo(hSysMenu, SC_HELP, False, miInfo);
|
Проблема возникает при выборе добавленного пункта (инвертируюся цвета, фон становиться черного цвета, Transparent = True не помогает). Прбовал добавлять иконку к моему пункту меню иначе, через SetMenuItemBitmaps, но тут тоже что-то не то, иконка масштабируется со сдвигом вправо, и таким образом не вмещается в пункт меню, Как избавиться от данной проблемы?
| Код | var hSysMenu: HMENU; B: TBitmap; miInfo: TMenuItemInfo; begin hSysMenu := GetSystemMenu(Handle, False); InsertMenu(hSysMenu, 5, MF_BYPOSITION, SC_HELP, 'Справка'); B := TBitmap.Create; B.LoadFromFile('D:\1.bmp'); SetMenuItemBitmaps(hSysMenu, 5, MF_BYPOSITION, B.Handle, B.Handle);
|
|