Not directly, you have to use an owndrawn menu for that purpose.
There is an example on how to do it in gMap64
Search for:
GetMenuIcon
AddResource
RemoveAllImageResource
and of course:
case WM_DRAWITEM:
lpdis = (DRAWITEMSTRUCT*) lParam;
if (lpdis->CtlType == ODT_MENU) {
img = GetMenuIcon(lpdis->itemID);
wcscopy(zTxt, GetMenuText(lpdis->itemID));
if (CheckStyle(lpdis->itemState, ODS_SELECTED)) {
SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
} else {
SetTextColor(lpdis->hDC, GetSysColor(COLOR_MENUTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_MENU));
}
if (CheckStyle(lpdis->itemState, ODS_GRAYED)) {
SetTextColor(lpdis->hDC, GetSysColor(COLOR_GRAYTEXT));
ImgAttr = ZI_SetImageAlpha(80);
}
ExtTextOut(lpdis->hDC, 6 + 16 + lpdis->rcItem.left,
lpdis->rcItem.top + 1, ETO_OPAQUE, &lpdis->rcItem, zTxt, lstrlen(zTxt), NULL);
if (GdipCreateFromHDC(lpdis->hDC, graphics) == 0) {
GdipGetImageWidth(img, imgW); GdipGetImageHeight(img, imgH);
GdipDrawImageRectRectI(graphics, img,
lpdis->rcItem.left + 1, lpdis->rcItem.top + 1, imgW, imgH,
0, 0, imgW, imgH, UnitPixel, ImgAttr, 0, 0);
GdipDeleteGraphics(graphics);
}
return 1;
}
break;
The problem with the skinned one, is that it has no idea of the image to use, nor if the graphic chart of the icon will match the current theme.
The best solution is to create the specific ownerdrawn popup menu directly inside of OR, using the same scope than in WinLIFT.
Or to use a GDImage overlay menu like in BB64 (see attachment), but there is no embedded child menu.
That is the same concept that in the OR's help topic list.