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;
    }

    接下来看效果。

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

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

  • 相关阅读:
    JDK1.5新特性
    mysql的基本使用
    IO简单示例
    序列化
    策略模式
    div+css布局之流体浮动布局
    xp优化
    Junit所使用的设计模式
    SSH使用总结(annotation配置方式)
    hibernate3.6.0使用总结
  • 原文地址:https://www.cnblogs.com/killbit/p/5093484.html
Copyright © 2011-2022 走看看