列表

创建MFC对话框程序一般流程:
1、在“..Dlg.h”中添加声明
2、在 “Dlg.cpp”中添加实现

ListDlg.h中所添加的私有属性和函数
private:
    void GetData();
    CString m_StrYM;
    CString m_StrMember;
    CString m_StrSex;


ListDlg.cpp

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

    // Add "About..." menu item to system menu.
    //初始化列表视图,设置列表框控件的扩展风格
                      //整行选择/          有表格线/        表头/                单击激活
    DWORD dwExStyle = LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE;
                          //报表风格/单行选择/高亮显示选择行
    m_ListInfo.ModifyStyle(0, LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);
    m_ListInfo.SetExtendedStyle(dwExStyle);

    //初始化列表,插入6列表头
    m_ListInfo.InsertColumn(0, "姓名", LVCFMT_CENTER, 60, 0);
    m_ListInfo.InsertColumn(1, "性别", LVCFMT_CENTER, 60, 0);
    m_ListInfo.InsertColumn(2, "出生年月", LVCFMT_CENTER, 85, 0);
    m_ListInfo.InsertColumn(3, "职称", LVCFMT_CENTER, 65, 0);
    m_ListInfo.InsertColumn(4, "工作单位", LVCFMT_CENTER, 120, 0);
    m_ListInfo.InsertColumn(5, "是否会员", LVCFMT_CENTER, 65, 0);

    // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
        CString strAboutMenu;
        strAboutMenu.LoadString(IDS_ABOUTBOX);
        if (!strAboutMenu.IsEmpty())
        {
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }

    // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE);         // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon

    // TODO: Add extra initialization here

    return TRUE;  // return TRUE  unless you set the focus to a control
}


void CListDlg::OnButtonAdd() 
{
    // TODO: Add your control notification handler code here
    GetData();
    int nIndex = m_ListInfo.GetItemCount();  //获取当前记录条数
    //定义项目(行)的数据结构
    LV_ITEM lvItem;
    lvItem.mask = LVIF_TEXT; 
    lvItem.iItem = nIndex;   //第nIndex行
    lvItem.iSubItem = 0;     //第一列,姓名
    lvItem.pszText = (char *)(LPCTSTR)m_Name;
    m_ListInfo.InsertItem(&lvItem);  //在最后一行插入记录
    //设置该行的其它列的值
    m_ListInfo.SetItemText(nIndex, 1, m_StrSex);  //性别
    m_ListInfo.SetItemText(nIndex, 2, m_Year);   //出生年月
    m_ListInfo.SetItemText(nIndex, 3, m_Title);  //职称
    m_ListInfo.SetItemText(nIndex, 4, m_Unit);
    m_ListInfo.SetItemText(nIndex, 5, m_StrMember);

    m_Name = "";
    m_Unit = "";
    m_Title = "";
    m_Sex = 0;
    m_Member = true;
    m_Year = "";
    m_Month = "";
    UpdateData(FALSE);
}

void CListDlg::OnButtonDel() 
{
    // TODO: Add your control notification handler code here
    int nItem = m_ListInfo.GetNextItem(-1, LVNI_SELECTED);
    if(nItem != -1)
        m_ListInfo.DeleteItem(nItem);

    m_Name = "";
    m_Unit = "";
    m_Title = "";
    m_Sex = 0;
    m_Member = true;
    m_Year = "";
    m_Month = "";
    UpdateData(FALSE);
}

void CListDlg::OnButtonEdit() 
{
    // TODO: Add your control notification handler code here
    GetData();
    int nItem = m_ListInfo.GetNextItem(-1, LVNI_SELECTED);
    if(nItem != -1)
    {
        m_ListInfo.SetItemText(nItem, 0, m_Name);
        m_ListInfo.SetItemText(nItem, 1, m_StrSex);
        m_ListInfo.SetItemText(nItem, 2, m_StrYM);
        m_ListInfo.SetItemText(nItem, 3, m_Title);
        m_ListInfo.SetItemText(nItem, 4, m_Unit);
        m_ListInfo.SetItemText(nItem, 5, m_StrMember);
    }
}

void CListDlg::GetData()
{
    UpdateData();
    if(m_Sex == 0)
        m_StrSex = "男";
    else
        m_StrSex = "女";
    if(m_Member)
        m_StrMember = "是";
    else
        m_StrMember = "否";
    m_StrYM = m_Year + "年" + m_Month + "月";
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值