创建班级菜单

【勇芳软件工作室】汉化HomePreviousNext

以下示例显示如何为应用程序创建类菜单,创建使用类菜单的窗口以及窗口过程中的过程菜单命令。

以下是应用程序头文件的相关部分:

//菜单模板资源标识符

#define IDM_MYMENURESOURCE 3

以下是本应用程序的相关部分:

HINSTANCE hinst;

int APIENTRY WinMain(hinstance,hPrevInstance,lpCmdLine,nCmdShow)

HINSTANCE hinstance;

HINSTANCE hPrevInstance;

LPSTR lpCmdLine;

int nCmdShow;

{

MSG msg; // 信息

WNDCLASS wc; // windowclass数据

HWND hwnd; //处理主窗口

//为主窗口创建窗口类。指定

//菜单模板资源的标识符为

// lpszMenuName要创建的WNDCLASS结构的成员

//类菜单。

wc.style = 0;

wc.lpfnWndProc = (WNDPROC) MainWndProc;

wc.cbClsExtra = 0;

wc.cbWndExtra = 0;

wc.hInstance = hinstance;

wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);

wc.hCursor = LoadCursor(NULL, IDC_ARROW);

wc.hbrBackground = GetStockObject(WHITE_BRUSH);

wc.lpszMenuName = MAKEINTRESOURCE(IDM_MYMENURESOURCE);

wc.lpszClassName = "MainWClass";

if(!RegisterClass(& wc))

return FALSE;

hinst = hinstance;

//创建主窗口。将hmenu参数设置为NULL

// Windows使用窗口的类菜单。

hwnd = CreateWindow("MainWClass", "Sample Application",

WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,

CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hinstance,

NULL);

if (hwnd == NULL)

return FALSE;

//使窗口可见,并发送WM_PAINT消息

//窗口过程

ShowWindow(hwnd, nCmdShow);

UpdateWindow(hwnd);

//启动主消息循环。

while(GetMessage(& msg,NULL,0,0)){

TranslateMessage(&msg);

DispatchMessage(&msg);

}

return msg.wParam;

UNREFERENCED_PARAMETER(hPrevInstance);

}

LRESULT APIENTRY MainWndProc(hwnd,uMsg,wParam,lParam)en

HWND hwnd;

UINT uMsg;

WPARAM wParam;

LPARAM lParam;

{

开关(uMsg){

.

. //处理其他窗口消息

.

case WM_COMMAND:

//测试命令项的标识符。

开关(LOWORD(wParam)){

case IDM_FI_OPEN:

DoFileOpen(); //应用程序定义

break;

case IDM_FI_CLOSE:

DoFileClose(); //应用程序定义

break;

.

. //处理其他菜单命令。

.

默认:

break;

}

return 0;

.

. //处理其他窗口消息

.

默认:

return DefWindowProc(hwnd, uMsg, wParam, lParam);

}

return NULL;

}