MFC对话框list control 初始化方法

本文介绍了一个图书管理系统中的管理员信息展示功能实现。通过初始化对话框并配置列表控件,实现了管理员信息的表格化显示。此外,还详细介绍了如何从文件读取管理员数据,并将其填充到列表控件中的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个初始化函数可以建立类向导中Add Function...这是从助教那学来的,感觉不错。。。这是个初始化函数,我在图书管理系统中应用了一下。。。这一段实现的功能就是打开对话框,能够在表格中显示管理员信息(注:列表控件选择报表report)。。。

画红色的部分是根据自己情况修改的~其余部分就可以用啦

BOOL CEditManager::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
//设置Listctrl为报表形式

CListCtrl* pmyListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);
DWORD dwStyle = GetWindowLong(pmyListCtrl->m_hWnd, GWL_STYLE);
SetWindowLong( pmyListCtrl->m_hWnd, GWL_STYLE, dwStyle | LVS_REPORT);

//设置listctrl可以整行选择和网格条纹
DWORD styles = pmyListCtrl->GetExtendedStyle();
pmyListCtrl->SetExtendedStyle(styles|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);

//给listctrl设置5个标题栏
TCHAR rgtsz[5][10] = {_T("馆员卡号"),_T("管员姓名"),_T("性别"),_T("年龄"),_T("工作时间")};

//修改数组大小,可以确定分栏数和没栏长度,如果修改下面的数据(蓝色部分)也要跟着改变

LV_COLUMN lvcolumn;
CRect rect;
pmyListCtrl->GetWindowRect(&rect);
for (int i=0;i<5;i++)
{
lvcolumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT
| LVCF_WIDTH | LVCF_ORDER;
lvcolumn.fmt = LVCFMT_LEFT;
lvcolumn.pszText = rgtsz[i];
lvcolumn.iSubItem = i;
lvcolumn.iOrder = i;
lvcolumn.cx = rect.Width()/5;
pmyListCtrl->InsertColumn(i, &lvcolumn);
}

ifstream input("manager.dat");//这是我自己需要的读文件操作
Manager manager;

input.read((char *)&manager,sizeof(manager));

while (input)
{
i=0;
CString strText;
if (manager.tag=='#')
{

strText.Format(TEXT("%d"), manager.number);

// Insert the item, select every other item.
pmyListCtrl->InsertItem(LVIF_TEXT|LVIF_STATE, i, strText,
(i%2)==0 ? LVIS_SELECTED : 0, LVIS_SELECTED,0, 0);

// Initialize the text of the subitems.


strText.Format("%s", manager.name);//这里就是要往里面输入的数据,注意坐标
pmyListCtrl->SetItemText(i, 1, strText);

strText.Format("%s", manager.sex);
pmyListCtrl->SetItemText(i, 2, strText);

strText.Format("%d", manager.age);
pmyListCtrl->SetItemText(i, 3, strText);

strText.Format("%d", manager.year);
pmyListCtrl->SetItemText(i, 4, strText);

}
input.read((char *)&manager,sizeof(manager));
};
input.close();

return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

祝大家好运~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值