大家帮忙看看,一个小WIN32API程序,为什么菜单显示不出啊该如何解决

大家帮忙看看,一个小WIN32API程序,为什么菜单显示不出啊?
首先是.C文件的内容:
C/C++ code
#include <Windows.h>
#include "resource.h"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);    
HINSTANCE hInst;
TCHAR szAppName[]=TEXT("PopMenu");
int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd ){
    HWND hwnd;
    MSG msg;
    WNDCLASS wndclass;
    wndclass.style=CS_HREDRAW|CS_VREDRAW;
    wndclass.lpfnWndProc=WndProc;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hInstance=hInstance;
    wndclass.hIcon=LoadIcon(NULL,szAppName);
    wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName=NULL; 
    wndclass.lpszClassName=szAppName;
    RegisterClass(&wndclass);
    hInst=hInstance;
    hwnd=CreateWindow(szAppName,TEXT("Popup Menu Demonstration"),WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
    ShowWindow(hwnd,nShowCmd);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0)){
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam){
    static HMENU hMenu;
    static int idColor[5]={WHITE_BRUSH,LTGRAY_BRUSH,GRAY_BRUSH,DKGRAY_BRUSH,BLACK_BRUSH};
    static int iSelection=IDM_BKGND_WHITE;
    POINT point;
    switch(message){
    case WM_CREATE:
        hMenu=LoadMenu(hInst,szAppName);
        hMenu=GetSubMenu(hMenu,0);
        return 0;
    case WM_RBUTTONUP:
        point.x=LOWORD(lparam);
        point.y=HIWORD(lparam);
        ClientToScreen(hwnd,&point);
        TrackPopupMenu(hMenu,TPM_RIGHTBUTTON,point.x,point.y,0,hwnd,NULL);
        return 0;
    case WM_COMMAND:
        switch(LOWORD(wparam)){
        case IDM_FILE_NEW:
        case IDM_FILE_OPEN:
        case IDM_FILE_SAVE:
        case IDM_FILE_SAVE_AS:
        case IDM_EDIT_UNDO:
        case IDM_EDIT_CUT:
        case IDM_EDIT_COPY:
        case IDM_EDIT_PASTE:
        case IDM_EDIT_CLEAR:
            MessageBeep(0);
            return 0;
        case IDM_BKGND_WHITE:
        case IDM_BKGND_LTGRAY:
        case IDM_BKGND_GRAY:
        case IDM_BKGND_DKGRAY:
        case IDM_BKGND_BLACK:
            CheckMenuItem(hMenu,iSelection,MF_UNCHECKED);//取消当前菜单选中的选项
            iSelection=LOWORD(wparam); //用新的菜单ID进行赋值
            CheckMenuItem(hMenu,iSelection,MF_CHECKED); //选中新的菜单选项
            SetClassLong(hwnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(idColor[LOWORD(wparam)-IDM_BKGND_WHITE]));//使用新的某种风格
            InvalidateRect(hwnd,NULL,TRUE);
            return 0;
        case IDM_APP_ABOUT:
            MessageBox(hwnd,TEXT("Menu Demonstration Program \n")TEXT("(c)Charles Petzold,1998"),szAppName,MB_ICONEXCLAMATION|MB_OK);
            return 0;
        case IDM_APP_EXIT:
            SendMessage(hwnd,WM_CLOSE,0,0); //关闭窗口
            return 0;
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd,message,wparam,lparam);
    }


然后是.h文件内容
C/C++ code
#define IDM_FILE_NEW        40001
#define IDM_FILE_OPEN        40002
#define    IDM_FILE_SAVE        40003
#define    IDM_FILE_SAVE_AS    40004
#define IDM_APP_EXIT        40005
#define IDM_EDIT_UNDO        40006
#define IDM_EDIT_CUT        40007
#define IDM_EDIT_COPY        40008
#define IDM_EDIT_PASTE        40009
#define IDM_EDIT_CLEAR        40010
#define IDM_BKGND_WHITE        40011
#define    IDM_BKGND_LTGRAY    40012
#define    IDM_BKGND_GRAY        40013
#define    IDM_BKGND_DKGRAY    40014
#define IDM_BKGND_BLACK        40015
#define    IDM_TIMER_START        40016
#define    IDM_TIMER_STOP        40017
#define IDM_APP_HELP        40018
#define IDM_APP_ABOUT        40019