zoukankan      html  css  js  c++  java
  • CListCtrl 之右键菜单

    在使用CListCtrl时要为它添加一个右键菜单,步骤如下:

    1. 响应CListCtrl的NM_RCLICK消息。

    2. 添加一个菜单资源,在菜单资源中插入要添加到菜单内容。

     CListCtrl添加右键菜单 - ♂『風』De 影子 - 風~~吹过~~~~

    一般存在两种方法:

    一、

    void CListCtrlDlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)

    {

    CPoint point;

    ::GetCursorPos(&point);

    CMenu menu;

    VERIFY(menu.LoadMenu(IDR_MENU1));      //IDR_MENU_POPUP是新建菜单ID

    CMenu* popup=menu.GetSubMenu(0);

    ASSERT(popup!=NULL );

    popup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this );

    *pResult = 0;

    }

    //***这时在listctrl的任何位置右键都会出现右键菜单

    二、

     void CTest6Dlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult)
          {
               NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
               if(pNMListView->iItem != -1)
               {
                    DWORD dwPos = GetMessagePos();
                    CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
       
                    CMenu menu;
                    VERIFY( menu.LoadMenu( IDR_MENU1 ) );
                    CMenu* popup = menu.GetSubMenu(0);
                    ASSERT( popup != NULL );
                    popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this );
               }
               *pResult = 0;
      }

    //***这时只有listctrl存在选中项目的时候才会出现右键菜单

  • 相关阅读:
    Sql优化思路
    「网络流随想随记」
    「ZJOI 的部分题解整理」
    「循环矩阵相关的一些东西」
    知识蒸馏
    3D Human Pose Estimation with 2D Marginal Heatmaps
    模型剪枝
    目标检测小网络
    selenium---解决clear方法失效
    selenium---快速跳转到指定元素
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/3427970.html
Copyright © 2011-2022 走看看