第一步:先创建一个列表控件
第二不:将列表属性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博客