是哪句代码创建了菜单

windows程序设计第十章的MenuDemo.c程序中是哪句代码让菜单显示在了窗口上.
我按照源程序自己写了个简单的程序 但是菜单不能被正常显示. 以下是源代码

#include
#include "resource.h"

#define UNICODE
#define ID_TIMER 1

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

TCHAR szAppName[] = TEXT ("MenuDemo") ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
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, IDI_APPLICATION) ;
 wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
 wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
 wndclass.lpszMenuName  = szAppName ;
 wndclass.lpszClassName = szAppName ;

 if (!RegisterClass (&wndclass))
 {
      MessageBox (NULL, TEXT ("This program requires Windows NT!"),
                  szAppName, MB_ICONERROR) ;
      return 0 ;
 }

 hwnd = CreateWindow (szAppName, TEXT ("Menu Demonstration"),
                      WS_OVERLAPPEDWINDOW,
                      CW_USEDEFAULT, CW_USEDEFAULT,
                      CW_USEDEFAULT, CW_USEDEFAULT,
                      NULL, NULL, hInstance, NULL) ;

 ShowWindow (hwnd, iCmdShow) ;
 UpdateWindow (hwnd) ;
    以上是书中源代码.
查了资料提示说.
    wndclass.lpszMenuName = NULL;部分,改成:wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);或者

ShowWindow之前添加如下代码:
HMENU hMenu = LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU1));
SetMenu(hwnd, hMenu);

这两种方法我试过的确可以 但书中的方式显然不同.

LoadMenu装入资源里面的菜单,而资源可以在资源编辑器里编辑

以下是题目(书上)的写法:

wndclass.lpszMenuName  = szAppName;

之所以这么写,是因为多数情况下,应用程序只用到一个菜单,所以 习惯用一个名字 表示菜单、图标、应用程序类。
当然也可以用不同名字表示,可以理解成是一种编程风格。

但要真正有菜单显示出来,必须创建相应的菜单资源,这是必不可少的。
如下图所示,在Resource View中创建:

图片说明

可以右键点击rc文件,然后点击View code。修改资源名字:

图片说明

wndclass.lpszMenuName = szAppName ;