小弟正在学习windows程序设计,想自己编写一个菜单 不使用VC自己添加的 
遇到一个错误  请高手指教 帮小弟指下错误  是为什么  说明下理由  这个是书上的代码 代码很多  但是应该不是很复杂  小弟初学  请高手指教错误信息 
fatal error RC1004: unexpected end of file found 宏定义 #define IDM_ALPHA  40001 
#define IDM_BETA  40002 
#define IDM_EXIT  40003 //并且错误消息指向的是这一行 菜单编写 
#include "menu.h" 
MyMenu MENU 

    POPUP "&One" 
    { 
        MENUITEM "&Alpha" , IDM_ALPHA 
MENUITEM "&Beta" , IDM_BETA 
MENUITEM "&Exit" , IDM_EXIT 
    } 
} 窗口代码 #include <windows.h> 
#include <stdio.h> 
#include "menu.h" 
//声明消息回调函数 
LRESULT CALLBACK zy_proc( 
HWND hwnd, 
UINT uMsg, 
WPARAM wParam, 
LPARAM lParam 
); 
//进入函数入口 
int WINAPI WinMain( 
HINSTANCE hInstance,//该程序运行的实例句柄 
HINSTANCE hPrevInstance,//前一个窗口实例句柄,通常都为NULL,对于第二次打开的窗口对应的第一个窗口就是前一个实例 
LPSTR lpCmdLine,//指定传递给应用程序的命名行参数 
int nCmdshow//显示状态,例如最大化,最小化,隐藏 
  ) 

//定义窗口 
WNDCLASS zy_WinClass;//声明窗口 
//设置窗口样子 
zy_WinClass.cbClsExtra=0;//追加字节数 
zy_WinClass.cbWndExtra=0; 
zy_WinClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景颜色 
zy_WinClass.hCursor=LoadCursor(NULL,IDC_ARROW);//光标 
zy_WinClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//系统图标 
zy_WinClass.hInstance=hInstance;//WinMain的参数复制过来 
zy_WinClass.lpfnWndProc=zy_proc;//消息机制 
zy_WinClass.lpszClassName="zy2009";//窗口名字 
zy_WinClass.lpszMenuName=MAKEINTRESOURCE(MyMenu);//菜单名字 
zy_WinClass.style=CS_HREDRAW | CS_VREDRAW|CS_DBLCLKS;//窗口样式,CS_VREDRAW表示垂直,CS_HREDRAW表示水平,CS_NOCLOSE表示窗口没有关闭按钮 
//注册窗口 
RegisterClass(&zy_WinClass); 
//定义窗口句柄 
HWND hwnd; 
//创建窗口,句柄指向于窗口 
hwnd=CreateWindow("zy2009","zy2009",WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, 
320,200,600,400,NULL,NULL,hInstance,NULL); 
//显示窗口 
// UINT OrgDblClickTime; 
// OrgDblClickTime=GetDoubleClickTime(); 
ShowWindow(hwnd,SW_SHOWNORMAL); 
//刷新窗口 
//UpdateWindow(hwnd); 
//定义消息队列 
MSG msg; 
//获取消息列队中消息 
while(GetMessage(&msg,NULL,0,0)) 

TranslateMessage(&msg);//将WM_KEYDOWN AND WM_KEYUP消息的组合转换为一条WM_CHAR消息 
DispatchMessage(&msg);//将消息回传给系统 

return 0; 

//消息回调 
char str[255]=" "; 
//UINT interval; 
LRESULT CALLBACK zy_proc( 
HWND hwnd,//窗口句柄 
UINT uMsg,//消息代码 
WPARAM wParam,//最后2个是消息的附加代码 
LPARAM lParam) 
{ HDC hdc; 
switch(uMsg) 

case WM_PAINT: 
//HDC hdc;//CD句柄 
PAINTSTRUCT ps; 
hdc=BeginPaint(hwnd,&ps); TextOut(hdc,0,100,"请一直点击鼠标右键有惊喜哦!",strlen("请一直点击鼠标右键有惊喜哦!")); 
EndPaint(hwnd,&ps); 
break; 
case WM_CHAR: 
//hdc=GetDC(hwnd); 
// TextOut(hdc,0,40," ",1.5); 
// sprintf(str,"%c",(char)wParam); 
// TextOut(hdc,0,40,str,strlen(str)); 
// ReleaseDC(hwnd,hdc); 
break; 
case WM_LBUTTONDOWN: 
//MessageBox(hwnd,"嘿嘿,再点几下就出来了!","提示",0);//弹出一个消息框 参数1是窗口句柄2是显示内容3是窗口标题4=0 
hdc=GetDC(hwnd); 
sprintf(str,"left button is down at %d,%d",LOWORD(lParam),HIWORD(lParam)); 
TextOut(hdc,LOWORD(lParam),HIWORD(lParam),str,strlen(str)); 
ReleaseDC(hwnd,hdc); 
break; 
/*case WM_RBUTTONDOWN: 
//MessageBox(hwnd,"嘿嘿,再点几下就出来了!","提示",0);//弹出一个消息框 参数1是窗口句柄2是显示内容3是窗口标题4=0 
interval=GetDoubleClickTime(); 
interval+=100; 
SetDoubleClickTime(interval); 
hdc=GetDC(hwnd); 
sprintf(str,"Right button Double_click is %millisecconds",interval); 
TextOut(hdc,LOWORD(lParam),HIWORD(lParam),str,strlen(str)); 
ReleaseDC(hwnd,hdc); 
break;*/ 
case WM_CLOSE: 
if(IDYES==MessageBox(hwnd,"你点了XX的哈,嘿嘿...但是点XX没的用","提示",MB_YESNO))//关闭窗口如果==IDYES者销毁窗口 

DestroyWindow(hwnd); 

break; 
case WM_DESTROY: 
PostQuitMessage(0);//退出程序 
break; 
default: 
return DefWindowProc(hwnd,uMsg,wParam,lParam);//把没有添加的行为交给消息机制处理 

return 0;