dec te ha puesto un ejemplo perfecto en delphi, si te parece y con su permiso, lo lo traduzco a C++ Builder
Código PHP:
//---------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
private: // User declarations
TPopupMenu *MyPopupMenu;
void __fastcall MenuItemClick(TObject *Sender);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
Código PHP:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TMenuItem *MenuItem;
MyPopupMenu = new TPopupMenu(this);
// Creamos un item
MenuItem = new TMenuItem(MyPopupMenu);
MenuItem->Caption = "Opción A";
MenuItem->OnClick = MenuItemClick;
MyPopupMenu->Items->Add(MenuItem);
// Creamos otro item
MenuItem = new TMenuItem(MyPopupMenu);
MenuItem->Caption = "Opción B";
MenuItem->OnClick = MenuItemClick;
MyPopupMenu->Items->Add(MenuItem);
// Creamos el tercer item
MenuItem = new TMenuItem(MyPopupMenu);
MenuItem->Caption = "Opción C";
MenuItem->OnClick = MenuItemClick;
MyPopupMenu->Items->Add(MenuItem);
// Asignamos al formulario nuestro PopupMenu
PopupMenu = MyPopupMenu;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::MenuItemClick(TObject *Sender)
{
TMenuItem *MenuItem = dynamic_cast<TMenuItem*>(Sender);
if(MenuItem)
ShowMessageFmt("Has pulsado en el item con index: \"%d\"", ARRAYOFCONST((PopupMenu->Items->IndexOf(MenuItem))));
}
//---------------------------------------------------------------------------
Saludos.