win32 WM_MENUSELECT消息学习

之前写了一些win32的程序,处理菜单单击都是处理WM_COMMAND消息,通过 LOWORD(wParam) 获取菜单ID,判断单击的是哪个菜单项;

还有一些其他菜单消息;

当在菜单项中移动光标或鼠标,程序会收到许多WM_MENUSELECT消息;
该消息的参数如下,
    LOWORD(wParam):选中项的菜单ID或弹出式菜单句柄
    HIWORD(wParam): 选择标志
    lParam:  包含选中项的菜单句柄
    
选择标志可以是MF_BITMAP、MF_CHECKED、MF_DISABLED等多个标志的组合;
如果需要根据菜单的选择来改变客户区和状态栏内容,此消息很有用;

	switch (message)
	{

	case WM_MENUSELECT:
		hdc = GetDC(hwnd);
		wsprintf(szBuffer, TEXT("%d"), LOWORD(wParam));
		TextOut(hdc, 50, 20 + 25 * row, szBuffer, lstrlen(szBuffer));
		row = row + 1;
		break;
......
    }

处理WM_MENUSELECT消息并输出选中的菜单ID,

win32 WM_MENUSELECT消息学习_第1张图片

当前的菜单ID定义如下,

#define IDR_MENU1                       101
#define ID_TEST1_TEST101                40001
#define ID_TEST1_TEST102                40002
#define ID_TEST1_TEST103                40003

    有时间继续; 

你可能感兴趣的:(VC++,WM_MENUSELECT,菜单消息,win32)