MFC 点击列表,以列表内容作为显示路径显示图片

第一步:先创建一个列表控件

第二不:将列表属性view 改为 report

第三步:选中列表控件,点击右键,添加变量

第四步:在xxxx.cpp文件中的BOOL xxxxxx::OnInitDialog() 对列表控件初始花和  风格扩展

/*初始化列表控件*/
	m_ctrlList.SetExtendedStyle(m_ctrlList.GetExtendedStyle() | 
    LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT| LVS_EX_HEADERDRAGDROP);
	m_ctrlList.InsertColumn(0, "左", LVCFMT_LEFT, GetSystemMetrics(SM_CXSCREEN) / 2);
	m_ctrlList.InsertColumn(1, "右", LVCFMT_LEFT, GetSystemMetrics(SM_CXSCREEN) / 2);
	m_ctrlList.GetScrollPos(SB_VERT);
	GetSystemMetrics(SM_CXSCREEN):  //获取屏幕宽度

m_ctrlList.InsertColumn():为列表控件设置表头

LVCFMT_LEFT:表头标题的对齐方式

m_ctrlList.GetScrollPos(SB_VERT);:为列表添加滚动条

第五步:在列表初始化时可以加一些内容:

    m_ctrlList.InsertItem(0, "E:\\照片\\左\\000_2.jpeg");
	m_ctrlList.SetItemText(0, 1, "E:\\照片\\右\\0001_1.jpeg");

	m_ctrlList.InsertItem(1, "E:\\照片\\左\\0001_3.jpeg");
	m_ctrlList.SetItemText(1, 1, "E:\\照片\\右\\0003_1.jpeg");

	m_ctrlList.InsertItem(2, "E:\\照片\\左\\0004_1.jpeg");
	m_ctrlList.SetItemText(2, 1, "E:\\照片\\右\\0001_4.jpeg");

	m_ctrlList.InsertItem(3, "E:\\照片\\左\\红.jpeg");
	m_ctrlList.SetItemText(3, 1, "E:\\照片\\左\\绿色.jpeg");

 m_ctrlList.InsertItem():在列表中开辟一行空间用于插入数据

 m_ctrlList.SetItemText():选中列表中的某一行,某一列插入数据

初始化后结果显示:

 第六步:点击列表控件选择属性中的事件

在下面的列表中选择NUM_CLICL,会自动生成相应的双击事件 

生成的函数名为:OnNMClickXXXX之类的方法;

第六步:点击列表中的某一行获得路径进行显示

//选中某一行
void XXXXXXXXXXX::OnNMClickXXXXXXXXXX(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	CString left, right;
	NMLISTVIEW *pNMListView = (NMLISTVIEW*)pNMHDR;
	if (pNMListView->iItem != -1) {
		left = m_ctrlList.GetItemText(pNMListView->iItem, 0);
		right = m_ctrlList.GetItemText(pNMListView->iItem, 1);
		if (!left.IsEmpty()&& !right.IsEmpty()) {
			ShowImage(left, 0);
			ShowImage(right, 1);
			GetDlgItem(IDC_EDIT_LEFT)->SetWindowText(left);
			GetDlgItem(IDC_EDIT_RIGHT)->SetWindowText(right);
		}
	}
		*pResult = 0;
}

m_ctrlList.GetItemText():获取选中行的文本,有两个参数第一个为   行号(pNMListView->iItem),第二个为列号

pNMListView->iItem:  代表选中行的行号

pNMListView->iItem = -1 代表所选中的行没有数据,会直接报错

pNMListView->iItem != -1 代表选中的行有数据,此时就会执行相应的事件进行图片显示

ShowImage():自定义写的显示图片的函数

ShowImage()方法链接:(16条消息) C++ MFC框架 根据路径显示图片_huiyanying的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值