在菜单中添加复选标记用CheckMenuItem函数

CheckMenuItem函数原型:

DWORD
WINAPI
CheckMenuItem(
_In_ HMENU hMenu,    //菜单句柄
_In_ UINT uIDCheckItem,  //菜单ID
_In_ UINT uCheck);    //复选标记MF_CHECKED(添加复选标记)和MF_UNCHECKED(取消复选标记)

实例:

LRESULT MyWnd::OnCommand(DWORD dwID, DWORD dwEnter, HWND hCtrlWnd)
{
HMENU hMenu = GetMenu(m_hWnd);  //获得窗口菜单句柄
HMENU hItem = GetSubMenu(hMenu, 1);//获得第二个子菜单项的句柄 switch (dwID)
{
case ID_TOOBAR_MENU:
{
//判断是否有复选标记,如果有就取消复选标记,没有就添加复选标记
if (CheckMenuItem(hItem, ID_TOOBAR_MENU, MF_CHECKED)&MF_CHECKED)
CheckMenuItem(hItem, ID_TOOBAR_MENU, MF_UNCHECKED); break;
}
case ID_STAT_MENU:
{ if (CheckMenuItem(hItem, ID_STAT_MENU, MF_CHECKED)&MF_CHECKED)
CheckMenuItem(hItem, ID_STAT_MENU, MF_UNCHECKED); break;
} case ID_MENU_MENU:
{
if (CheckMenuItem(hItem, ID_MENU_MENU, MF_CHECKED)&MF_CHECKED)
CheckMenuItem(hItem, ID_MENU_MENU, MF_UNCHECKED); break;
} }
return 0;
}

在菜单中添加单选标记用CheckMenuRadioItem函数

CheckMenuRadioItem函数原型:

BOOL
WINAPI
CheckMenuRadioItem(
_In_ HMENU hmenu,  //菜单句柄
_In_ UINT first,  //第一个菜单项ID
_In_ UINT last,   //最后一个菜单项ID
_In_ UINT check,  //要标记的菜单项ID
_In_ UINT flags);  //单选标记MF_BYCOMMAND

实例:

//菜单ID号要是连续的Id号

#define ID_TOOBAR_MENU 40027
#define ID_STAT_MENU 40028
#define ID_MENU_MENU 40029



LRESULT MyWnd::OnCommand(DWORD dwID, DWORD dwEnter, HWND hCtrlWnd)
{
HMENU hMenu = GetMenu(m_hWnd);
HMENU hItem = GetSubMenu(hMenu, 1); switch (dwID)
{
case ID_TOOBAR_MENU:
{ CheckMenuRadioItem(hItem, ID_TOOBAR_MENU, ID_MENU_MENU, ID_TOOBAR_MENU, MF_BYCOMMAND);
break;
}
case ID_STAT_MENU:
{ CheckMenuRadioItem(hItem, ID_TOOBAR_MENU, ID_MENU_MENU, ID_STAT_MENU, MF_BYCOMMAND);
break;
} case ID_MENU_MENU:
{ CheckMenuRadioItem(hItem, ID_TOOBAR_MENU, ID_MENU_MENU, ID_MENU_MENU, MF_BYCOMMAND);
break;
} }
return 0;
}

效果图:

Win32 菜单添加复选标记和单选标记的更多相关文章

  1. Bootstrap 表单和图片 (内联表单,表单合组,水平排列,复选框和单选框,下拉列表,校验状态,添加额外的图标,控制尺寸,图片)

    一.表单 基本格式 注:只有正确设置了输入框的 type 类型,才能被赋予正确的样式. 支持的输入框控件 包括:text.password.datetime.datetime-local.date.m ...

  2. 【三石jQuery视频教程】02.创建 FontAwesome 复选框和单选框

    视频地址:http://v.qq.com/page/m/8/c/m0150izlt8c.html 大家好,欢迎来到[三石jQuery视频教程],我是您的老朋友 - 三生石上. 今天,我们要通过基本的H ...

  3. Jquery学习笔记:操作form表单元素之二(复选框和单选框)

    在上面文章的基础上,我们介绍如何操作表单元素中的 复选框和单选框. 一.复选框 <label> <input type="checkbox" id="i ...

  4. CheckedListBoxControl 实现复选框的单选与多选功能

    由于工作需要,需要实现复选框的单选与多选功能,找了好多资料都不是很全,经过两天苦苦的挖挖挖,终于完成啦O(∩_∩)O哈哈~ 用DEV控件中的CheckedListBoxControl控件,当然VS中的 ...

  5. Qt之QHeaderView添加复选框

    简述 前面分享了QTableView中如何添加复选框.本节主要介绍QTableView中的表头-QHeaderView添加复选框的功能,下面以水平表头为例,垂直表头类似! 简述 效果 QHeaderV ...

  6. 如何让checkbox复选框只能单选

    function框架div 如何让checkbox复选框只能单选 在项目开发中遇到一个这样的问题,要让一列复选框架在任何时间段内只能选择一个. 有人说怎么不用单选框了,因为单选框一旦选择了就不能取消选 ...

  7. 组合框里添加复选框的方法(使用勾选的假象,用图片代替而已,并非QT原生支持)

    组合框可以看作是列表框和文本框的组合,因其占据的空间少,使用操作方便,常被界面设计人员用于界面开发设计中,在有限个输入的条件下,组合框常用来代替文本框,这样从用户使用角度来看,更趋人性化,所见即所得. ...

  8. QListWidget的QComboBox下拉列表添加复选框及消息处理

    要在QComboBox下拉列表项中添加复选框,并进行消息处理,在网上搜索了很久没有找到太多有用的信息和实际的例子,但从中还是找到了一些提示性的资料,根据这些简短的介绍,最终实现了这个功能. QComb ...

  9. 把复选框变成单选框(prop,attr的区别)

    如果项目中需要统一样式的话,有可能会遇到把复选框变成单选框的需求. 下面是用jquery的简单实现 $(function(){ $("input[type='checkbox']" ...

  10. 雷林鹏分享:jQuery EasyUI 数据网格 - 添加复选框

    jQuery EasyUI 数据网格 - 添加复选框 本实例演示如何放置一个复选框列到数据网格(DataGrid).通过复选框,用户将可以选择 选中/取消选中 网格行数据. 为了添加一个复选框列,我们 ...

随机推荐

  1. 实训day2

    HTML基本介绍 编辑网页的语言,超文本标记语言,是迄今为止网络上应用最为广泛的语言,也是抱成网页文档的主要语言.HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字.图形.动画.声 ...

  2. 为什么不推荐使用Linq?

    相信很多.NETer看了标题,都会忍不住好奇,点进来看看,并且顺便准备要喷作者! 这里,首先要申明一下,作者本人也非常喜欢Linq,也在各个项目中常用Linq. 我爱Linq,Linq优雅万岁!!!( ...

  3. VSCode中设置用IPython运行Python代码

    VSCode中设置用IPython运行Python代码 在IPython中运行所选的代码: 在设置中, 找到python.terminal.launchArgs这一项, 设置为如下内容. " ...

  4. Windows下Qt5程序打包发布

    Windows下Qt5程序打包发布与图标设置 原文(有删改):https://blog.csdn.net/qq_39105333/article/details/114779650 设置程序图标 默认 ...

  5. Android系统启动:2-Init篇

    Android系统启动:Init篇 原文:http://gityuan.com/2016/02/05/android-init/ 概述 init进程是Linux系统中用户空间的第一个进程,进程号固定为 ...

  6. 记录一次python3 flask 多线程被执行两次的问题

    前言 最近在使用 python3 flask 做管理服务,需要实现服务中 flask server 和 另一个多线程while循环同时存在,如下 from flask import Flask , j ...

  7. n阶前缀和 の 拆解

    二阶 \[\sum_{i=l}^{r} \sum^{i}_{j=1} a_j \] \[=\sum_{i=l}^{r} (r-i+1) a_i \] \[=(r+1)\sum_{i=l}^{r} a_ ...

  8. webpack4.15.1 学习笔记(一) — 基本概念

    目录 入口(entry) 出口(output) 加载器 Loaders 插件 Plugins 模式 webpack.config.js 配置 终终终终于下定决心,对你下手了,系统的学习一下. webp ...

  9. mysql 删除数据表报错 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理

    mysql 删除数据表报错 表删除时 Cannot delete or update a parent row: a foreign key constraint fails 异常处理 MySQL报错 ...

  10. oeasy教您玩转vim - 91 - # vim脚本编程展望

    ​ vim脚本编程展望 回忆 上次我们彻底研究了vim高亮的原理 各种语法项syntax item 关键字keyword 匹配模式match 区域region 定义好了之后还可以设置链接成组 hi d ...