あらかじめIDを設定しといて、それを使用するという方法があります。
その場合はMFC Class Wizardで関数をつくるなり、ON_COMMAND_RANGEで処理したりします。
ヘルプ(MSDN)の「テクニカル ノート 20: ID 名および番号に関する規約」によると「0x8000 -> 0xDFFF」と定まっていますので、それを利用すると以下のようなことができるかと思います。
ここでは、最後の方は使われてないものとし、0〜99のアイテムと考えます。
void CTest0038View::OnButton55()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
int i;
POINT pt;
CMenu cme;
char buf[256];
GetCursorPos(&pt);
cme.CreatePopupMenu();
for(i=0;i<10;++i)
{
sprintf(buf,"item%d",i);
cme.AppendMenu(MF_STRING|MF_BYCOMMAND,0xDFFF-i,buf);
}
cme.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,pt.x,pt.y,this);
}
BOOL CTest0038View::OnCommand(WPARAM wParam, LPARAM lParam)
{
// TODO: この位置に固有の処理を追加するか、または基本クラスを呼び出してください
int i;
if((i=0xDFFF-LOWORD(wParam))<100) TRACE("item%d\n",i);
return CFormView::OnCommand(wParam, lParam);
}