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存在选中项目的时候才会出现右键菜单

  • 相关阅读:
    java面试题
    linux下的文件目录结构
    Linux的基础命令
    Linux系统的介绍
    逻辑思维题
    37-字符的全排列
    36-螺旋矩阵
    35-面试:如何找出字符串的字典序全排列的第N种
    34-数细线
    33-求极差
  • 原文地址:https://www.cnblogs.com/rainbowzc/p/3427970.html
Copyright © 2011-2022 走看看