bool CScreenButtons::ContextMenu(int iButton, const ScreenPoint & sp, HWND hwnd) { CMenu mmMenu; mmMenu.Init(); Data::Actions::iterator it; Data::Actions::iterator begin = m_data->actions.begin(); Data::Actions::iterator end = m_data->actions.end(); for (it = begin; it != end; ++it) mmMenu.CreateItem(it->label.c_str(), it->command); DWORD dwRes = mmMenu.Popup(sp.x, sp.y, hwnd); it = std::find(begin, end, dwRes); if (it != end) { m_data->buttons[iButton] = *it; Save(); return true; } return false; }