per Studio generated include file. // Used by NoPopups.rc
#define IDM_FILE 40001 #define IDM_EDIT 40002 #define IDM_FILE_NEW 40003 #define IDM_FILE_OPEN 40004 #define IDM_FILE_SAVE 40005 #define IDM_FILE_SAVE_AS 40006 #define IDM_MAIN 40007 #define IDM_EDIT_UNDO 40008 #define IDM_EDIT_CUT 40009 #define IDM_EDIT_COPY 40010 #define IDM_EDIT_PASTE 40011 #define IDM_EDIT_CLEAR 40012
在Microsoft
Developer
Studio中,您建立了三个功能表,而不是一个。从「Insert」中选择「Resource」三次,每个功能表有一个不同的名称。当视窗讯息处理程式处理WM_CREATE讯息时,Windows将每个功能表资源载入记忆体:
hMenuMain = LoadMenu (hInstance, TEXT ("MenuMain")) ; hMenuFile = LoadMenu (hInstance, TEXT ("MenuFile")) ; hMenuEdit = LoadMenu (hInstance, TEXT ("MenuEdit")) ;
开始时,程式只显示主功能表:
SetMenu (hwnd, hMenuMain) ;
主功能表使用字串「MAIN:」、「File...」和「Edit...」列出这三个选项。然而,「MAIN:」是禁用的,因此它不能使WM_COMMAND讯息被发送到视窗讯息处理程式。「File」和「Edit」功能表项以「FILE:」和「EDIT:」开始,表示它们是子功能表。每个功能表的最後一项都是字串「(Main)」,表示传回到主功能表。在这三个功能表之间进行切换是很简单的:
case WM_COMMAND : switch (wParam) { case IDM_MAIN : SetMenu (hwnd, hMenuMain) ; return 0 ;
case IDM_FILE : SetMenu (hwnd, hMenuFile) ; return 0 ;
case IDM_EDIT : Se |