zoukankan      html  css  js  c++  java
  • 学习远控界面设计五: 在列表中显示弹出菜单

     今天我将记录我学习的内容,那就是如何设计在列表中显示弹出菜单。

    我们先新建立一个资源。

    我们将ID设置为比较有意义的ID,这样比较好区分。

    我们来学习GHOST的菜单,当GHOST在选择机器控制的时候,菜单资源才会可用,不然菜单资源就是灰色的。

    当我们管理机器的时候,需要右键,然后跳出菜单来选择功能。所以我们需要添加一个事件。

    加入RCLICK,当右键点击的时候响应事件。然后来写代码

    void CGhostDlg::OnNMRClickListoline(NMHDR *pNMHDR, LRESULT *pResult)
    {
        LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
        // TODO: Add your control notification handler code here
        CMenu    popup;
        popup.LoadMenu(IDR_MENU);
        CMenu*    pM = popup.GetSubMenu(0);
        CPoint    p;
        GetCursorPos(&p);
        int    count = pM->GetMenuItemCount();
        if (m_list_oline.GetSelectedCount() == 0)       //如果没有选中
        { 
            for (int i = 0; i < count; i++)
            {
                pM->EnableMenuItem(i, MF_BYPOSITION | MF_DISABLED | MF_GRAYED);          //菜单全部变灰
            }
    
        }
        pM->TrackPopupMenu(TPM_LEFTALIGN, p.x, p.y, this);
        *pResult = 0;
    }

    接下来看效果。

    接下来我们来完成菜单栏的功能函数。

    我们依次添加响应事件即可。

  • 相关阅读:
    vim 命令替换重复命令
    Python环境安装
    MySQL 查看show profile
    XSS攻击与CSRF攻击与防御
    HTTPS的原理
    PHP curl的请求步骤
    【论文阅读】HRNet
    【学习笔记】gRPC-python
    【Linux学习笔记】Linux基础
    【Golang学习笔记】入门:结构体、方法与接口
  • 原文地址:https://www.cnblogs.com/killbit/p/5093484.html
Copyright © 2011-2022 走看看