thanks to your fast reply.
and I have three guestion.
As follow your direction, I made popup menu but had three problem.
================================================================
CExtPopupMenuWnd * pPopup = new CExtPopupMenuWnd;
pPopup->UpdateFromMenu(GetSafeHwnd(), &menu, true, true, true);
CExtBitmap _bmp;
VERIFY(_bmp.LoadBMP_Resource( MAKEINTRESOURCE(IDB_BITMAP_VIEW)));
static const COLORREF clrTransparentPaint = RGB(255,0,255);
static const CSize _sizeBitmapPartPaint(16,16);
CPoint ptBitmapOffset(0, 0);
CRect rcBitmapPart(ptBitmapOffset, _sizeBitmapPartPaint);
CExtCmdIcon _icon;
_icon.m_bmpNormal.FromBitmap(_bmp, &rcBitmapPart);
ASSERT( ! _icon.IsEmpty() );
_icon.m_bmpNormal.AlphaColor( clrTransparentPaint, RGB(0,0,0), 0 );
pPopup->ItemSetPopupIcon(nPos, _icon);
====================================================================
1. Menu’s status don’t change.
ex) pCmdUI->Enable(FALSE); Menu don’t change to disable status.
I searched this board for answer, pPopup->UpdateFromMenu(GetSafeHwnd(), &menu, true, true, true); true->false.
But, if bNoRefToCmdMngr is
false, ItemSetPopupIcon function don’t work.
2. I don’t know menu’s check status.
ex) pCmdUI->SetCheck(TRUE);
3.Because icon replace on check , I want to know check status as differenct icon type.
as below source, Can CExtBitmap use CDib class?
=====================================================
DWORD tagImageMap[IB_NUMBER_OF_IMAGES] = {1,0,3,2,0};
IB_MAP_OF_IMAGES tagIbMap;
CDib clsDib;
clsDib.ReadFromFile(ICON_IMAGE);
for (int i = 0; i < IB_NUMBER_OF_IMAGES; i++)
{
tagIbMap.adwImageOrder[i] = tagImageMap[i];
}
============================================================