struct有关问题

struct问题
#include   <stdio.h>
#include   <stdlib.h>
#include   <string.h>

typedef   struct
{
  char   title[1];
  enum     {   DISPLAY_SUBMENU   =   0,   PERFORM_MENU_HANDLE   }   menu_action;
  union  
  {
  int   menu_id;
  int   menu_handle_id;
  }   menu_action_parameter;
}ESC_MENU_ITEM;


void   main()
{
ESC_MENU_ITEM   item;
item.menu_action   =   DISPLAY_SUBMENU;
}


报错如下:
error   C2065:   'DISPLAY_SUBMENU '   :   undeclared   identifier
C:\Documents   and   Settings\hp\桌面\enum.cpp(21)   :   error   C2440:   '= '   :   cannot   convert   from   'int '   to   'enum   '
                Conversion   to   enumeration   type   requires   an   explicit   cast   (static_cast,   C-style   cast   or   function-style   cast)
Error   executing   cl.exe.

------解决方案--------------------
item.menu_action = ESC_MENU_ITEM::DISPLAY_SUBMENU;
------解决方案--------------------
enum
{
DISPLAY_SUBMENU = 0,
PERFORM_MENU_HANDLE
};

typedef struct
{
char title[1];
int menu_action;
union
{
int menu_id;
int menu_handle_id;
} menu_action_parameter;
}ESC_MENU_ITEM;


void main()
{
ESC_MENU_ITEM item;
item.menu_action = DISPLAY_SUBMENU;
}

------解决方案--------------------
这样写:
item.menu_action = ESC_MENU_ITEM::DISPLAY_SUBMENU;