• 学习远控界面设计五: 在列表中显示弹出菜单


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

    我们先新建立一个资源。

    我们将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;
    }

    接下来看效果。

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

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

  • 相关阅读:
    (57)C# frame4 调用frame2
    (56)C# 读取控制台程序
    (55)C# windows 消息
    (54) C# 调用 kernel32.dll
    (53)C# 工具
    C++ hello world
    postgresql时间处理
    ext中grid根据数据不同显示不同样式
    log4j入门
    敏感数据加密
  • 原文地址:https://www.cnblogs.com/killbit/p/5093484.html
Copyright © 2020-2023  润新知