win32 WM_MENUSELECT消息学习

2023-12-28 01:31:56

之前写了一些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,

当前的菜单ID定义如下,

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

? ? 有时间继续;?

文章来源:https://blog.csdn.net/bcbobo21cn/article/details/135252344
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。