【MFC笔记】列表控件List Control选中一行数据、右键跳出菜单、删除某一行、DELETE按钮删除一行

1、新建一个菜单

2、在列表控件List Control中新建右键消息

3、在消息函数内添加如下程序,可以弹出对话框了

    CMenu menu;//新建菜单实例
    POINT pt = { 0 };//用于存储鼠标位置的结构体变量,pt.x和pt.y分别为x.y值
    GetCursorPos(&pt);//得到鼠标点击位置
    menu.LoadMenu(IDR_MENU2);//菜单资源加载,ID改成自己的
    menu.GetSubMenu(0)->TrackPopupMenu(0, pt.x, pt.y, this);//显示菜单的位置

4、给右键菜单分别添加命令/第一个是删除行控件

void CMyMFCDlg::On32779()
{
    // TODO: 在此添加命令处理程序代码
    int nItem = m_List.GetSelectionMark();
    m_List.DeleteItem(nItem);
}

5、在初始化的时候添加一行下面的指令,可以选中列表中的一行

m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);//可以选中所有数据

6、用DELETE按键删除,不用右键菜单删除

列表框新建消息响应。IDC_LIST1——》LVN_KEYDOWN

添加如下信息(判断是不是DELETE按下,是的话就用上面的删除语句)

2019.3.13

 

不创建菜单,直接函数里生成。

1、命名菜单ID,在resource.h中添加,将resource.h在头文件加载#include "Resource.h"

#define ID_ONE                          32821
#define ID_TWO                          32822
#define ID_MULTI                        32823

2、在所在窗口页面新建消息,选择上面的ID,消息为COMMAND,添加,将三个ID都建消息。

3、新建一个右键响应消息

4、在右键消息下,添加弹出属性菜单的操作,如下。

   

	POINT ptPoint = { 0 };
	GetCursorPos(&ptPoint);//获得目前的鼠标位置
	CMenu popupMenu;//新建弹出菜单
	popupMenu.CreatePopupMenu();//创建菜单
	popupMenu.AppendMenu(MF_STRING, ID_ONE, _T("设为1列"));//
	popupMenu.AppendMenu(MF_STRING, ID_TWO, _T("设为2列"));
	popupMenu.AppendMenu(MF_STRING, ID_MULTI, _T("设为多列"));
	popupMenu.TrackPopupMenu(TPM_LEFTALIGN/*出现在鼠标点击的左上*/ | TPM_LEFTBUTTON/*左键选择*/, ptPoint.x, ptPoint.y, this);//显示并监视菜单
	popupMenu.DestroyMenu();//销毁菜单

 

展开阅读全文

没有更多推荐了,返回首页