c语言list的使用方法,[C语言]list应用之2 - 代码贴 - BCCN

// listtestDlg.cpp : 实现文件

//

#include "stdafx.h"

#include "listtest.h"

#include "listtestDlg.h"

#include "afxdialogex.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// ClisttestDlg 对话框

ClisttestDlg::ClisttestDlg(CWnd* pParent /*=NULL*/)

: CDialogEx(ClisttestDlg::IDD, pParent)

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

m_postion = 0;

}

void ClisttestDlg::DoDataExchange(CDataExchange* pDX)

{

CDialogEx::DoDataExchange(pDX);

DDX_Control(pDX, IDC_LIST1, m_list);

}

BEGIN_MESSAGE_MAP(ClisttestDlg, CDialogEx)

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST1, &ClisttestDlg::OnLvnItemchangedList1)

ON_BN_CLICKED(IDOK, &ClisttestDlg::OnBnClickedOk)

ON_BN_CLICKED(IDCANCEL, &ClisttestDlg::OnBnClickedCancel)

END_MESSAGE_MAP()

// ClisttestDlg 消息处理程序

BOOL ClisttestDlg::OnInitDialog()

{

CDialogEx::OnInitDialog();

// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动

// 执行此操作

SetIcon(m_hIcon, TRUE); // 设置大图标

SetIcon(m_hIcon, FALSE); // 设置小图标

// TODO: 在此添加额外的初始化代码

// 为列表视图控件添加全行选中和栅格风格

m_list.SetExtendedStyle(m_list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);

m_postion=0;

//初始化列

m_list.InsertColumn(0,L"OFFSET",LVCFMT_CENTER,80);

m_list.InsertColumn(1,L"0",LVCFMT_CENTER,30);

m_list.InsertColumn(2,L"1",LVCFMT_CENTER,30);

m_list.InsertColumn(3,L"2",LVCFMT_CENTER,30);

m_list.InsertColumn(4,L"3",LVCFMT_CENTER,30);

m_list.InsertColumn(5,L"4",LVCFMT_CENTER,30);

m_list.InsertColumn(6,L"5",LVCFMT_CENTER,30);

m_list.InsertColumn(7,L"6",LVCFMT_CENTER,30);

m_list.InsertColumn(8,L"7",LVCFMT_CENTER,30);

m_list.InsertColumn(9,L"8",LVCFMT_CENTER,30);

m_list.InsertColumn(10,L"9",LVCFMT_CENTER,30);

m_list.InsertColumn(11,L"10",LVCFMT_CENTER,30);

m_list.InsertColumn(12,L"11",LVCFMT_CENTER,30);

m_list.InsertColumn(13,L"12",LVCFMT_CENTER,30);

m_list.InsertColumn(14,L"13",LVCFMT_CENTER,30);

m_list.InsertColumn(15,L"14",LVCFMT_CENTER,30);

m_list.InsertColumn(16,L"15",LVCFMT_CENTER,30);

//m_list.InsertItem(m_postion,L"tmp_str");

return TRUE; // 除非将焦点设置到控件,否则返回 TRUE

}

// 如果向对话框添加最小化按钮,则需要下面的代码

// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,

// 这将由框架自动完成。

void ClisttestDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // 用于绘制的设备上下文

SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);

// 使图标在工作区矩形中居中

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// 绘制图标

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialogEx::OnPaint();

}

}

//当用户拖动最小化窗口时系统调用此函数取得光标

//显示。

HCURSOR ClisttestDlg::OnQueryDragIcon()

{

return static_cast(m_hIcon);

}

void ClisttestDlg::OnLvnItemchangedList1(NMHDR *pNMHDR, LRESULT *pResult)

{

LPNMLISTVIEW pNMLV = reinterpret_cast(pNMHDR);

// TODO: 在此添加控件通知处理程序代码

*pResult = 0;

}

void ClisttestDlg::OnBnClickedOk()

{

// TODO: 在此添加控件通知处理程序代码

//CDialogEx::OnOK();

// TODO: 在此添加控件通知处理程序代码

CFileDialog dlg(true);

if (dlg.DoModal() == IDOK)

{

//this->MessageBox(L"选择的文件地址:" + dlg.GetPathName() + " | 选择的文件名:" + dlg.GetFileName() ,

// L"提示:",MB_OK);

}

else

this->MessageBox(L"你选择了取消按钮");

/*

CFileDialog 相关属性值

GetFileExt 获得所选文件的后缀名

GetFileName 获得所选文件的名称

GetFileTitle 获得文件全名 (不含扩展名)

GetFolderPath 获得文件路径

GetNextPathName 获得下一个文件路径全名(多选文件时使用)

GetPathName 获得路径全名

GetStartPosition 获得所选文件的第一个文件的定位信息(多选时使用)

*/

FILE* fp;

char tmp[2];

int postion=0;

CString s;

CString FileName;

FileName=dlg.GetPathName();

fp=_tfopen(FileName,_T("rb"));

if(fp!=NULL)

{

while(!feof(fp))

{

m_list.InsertItem(postion,L"0000");

//this->MessageBox(L"文件打开错误",s,MB_OK);

//return;

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,1,s);//为当前行添加第2列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,2,s);//为当前行添加第3列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,3,s);//为当前行添加第4列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,4,s);//为当前行添加第5列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,5,s);//为当前行添加第6列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,6,s);//为当前行添加第7列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,7,s);//为当前行添加第8列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,8,s);//为当前行添加第9列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,9,s);//为当前行添加第10列

tmp[0]=getc(fp);

tmp[1]='\0';

m_list.SetItemText(postion,10,s);//为当前行添加第11列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,11,s);//为当前行添加第12列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,12,s);//为当前行添加第13列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,13,s);//为当前行添加第14列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,14,s);//为当前行添加第15列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,15,s);//为当前行添加第16列

tmp[0]=getc(fp);

tmp[1]='\0';

s=tmp;

m_list.SetItemText(postion,16,s);//为当前行添加第17列

postion++;

}

}

else this->MessageBox(L"文件打开错误",L"请继续检查",MB_OK);

}

void ClisttestDlg::OnBnClickedCancel()

{

// TODO: 在此添加控件通知处理程序代码

CDialogEx::OnCancel();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值