首页 > 其他 > 详细

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

时间:2016-01-01 18:43:26      阅读:113      评论:0      收藏:0      [点我收藏+]

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

我们先新建立一个资源。

技术分享

 

技术分享

 

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

接下来看效果。

 

技术分享

 

技术分享

 

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

 

技术分享

 

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

 

技术分享

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

原文:http://www.cnblogs.com/killbit/p/5093484.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!