zoukankan      html  css  js  c++  java
  • Win32 菜单添加复选标记和单选标记

    在菜单中添加复选标记用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; }

    效果图:

    签名:GreenLeaf1976
  • 相关阅读:
    redis:string字符串类型的操作
    redis键值操作
    什么是redis?redis有什么用途?
    centos7下安装配置redis
    windows下安装和配置redis
    mysql5.7.20完全卸载 win10
    selenium+PhantomJS小案例—爬豆瓣网所有电影代码python
    用单进程、多线程并发、多线程分别实现爬一个或多个网站的所有链接,用浏览器打开所有链接并保存截图 python
    PhantomJS、CasperJS安装配置图文详解
    python:什么是单例?一个简单的单例
  • 原文地址:https://www.cnblogs.com/greenleaf1976/p/14925110.html
Copyright © 2011-2022 走看看