如题所示,以前在VC6.0用过,但是写的相当的繁琐
在08有没有简单一些的实现方法

解决方案 »

  1.   

    响应NM_RCLICK事件,添加类似如下代码 LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR);
    int index = pNMLV->iItem;
    if( index == -1 )
    return;
    HMENU hMenu = ::CreatePopupMenu();
    AppendMenu( hMenu, MF_STRING, 10001, _T("菜单项1") );
    CPoint pt;
    GetCursorPos(&pt); //获得当前鼠标位置
    UINT Cmd = (UINT)::TrackPopupMenu( hMenu, TPM_LEFTALIGN|TPM_RETURNCMD, pt.x, pt.y, 0, m_hWnd, NULL );//弹出菜单 switch( Cmd )//响应点击的菜单
    {
    case 10001: break; }
      

  2.   

    这里
    http://topic.csdn.net/t/20050719/15/4154322.html
      

  3.   

    响应右键消息
    TrackPopupMenu
      

  4.   

    微软自己生成的代码都有问题。
    LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); 需要将LPNMLISTVIEW转换成LPNMLISTVIEW*