创建一个编辑框控件,可以输入姓名;创建一个下拉列表可以选择科目(语文、数学和英语);创建一个组合框单选选择成绩(A,B,C,D)。创建一个单选列表框,一个添加成绩记录的按钮,可以在列表框中最后一行添加一行成绩记录;一个插入成绩记录的按钮,可以在选定的列表框的上面一行插入一行成绩记录。在列表框中双击某一项,可以删除这行成绩记录。
1、首先创建如下控件

2、为控件设置好属性和ID值

3、初始化对话框
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
pList->InsertColumn(0,"姓名",0,100);
pList->InsertColumn(1,"科目",0,100);
pList->InsertColumn(2,"成绩",0,100);
// 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);
}
}
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
return TRUE; // return TRUE unless you set the focus to a control
}
4、为添加成绩按钮添加事件处理函数
void CMyDlg::OnAdd()
{
// TODO: Add your control notification handler code here
CString m_name,m_sub,m_score;
GetDlgItemText(IDC_NAME,m_name);
GetDlgItem(IDC_SUBJECT)->GetWindowText(m_sub);
GetDlgItem(IDC_SCORE)->GetWindowText(m_score);
CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
int nCount = pList->GetItemCount();
pList->InsertItem(nCount,m_name);
pList->SetItemText(nCount,1,m_sub);
pList->SetItemText(nCount,2,m_score);
}
5、为插入成绩按钮添加事件处理函数
void CMyDlg::OnUpdate()
{
// TODO: Add your control notification handler code here
POSITION pos = m_list.GetFirstSelectedItemPosition();
if(!pos)
{
AfxMessageBox("请选择一行再添加!");
return;
}
int nSel=m_list.GetNextSelectedItem(pos);
CString m_name,m_sub,m_score;
GetDlgItemText(IDC_NAME,m_name);
GetDlgItem(IDC_SUBJECT)->GetWindowText(m_sub);
GetDlgItem(IDC_SCORE)->GetWindowText(m_score);
CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
pList->InsertItem(nSel,m_name);
pList->SetItemText(nSel,1,m_sub);
pList->SetItemText(nSel,2,m_score);
}
6、为List控件添加双击的事件处理函数

void CMyDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
POSITION pos = m_list.GetFirstSelectedItemPosition();
if(!pos)
{
AfxMessageBox("请选择一行再删除!");
return;
}
int nSel=m_list.GetNextSelectedItem(pos);
CString str=m_list.GetItemText(nSel,0);
str="确认删除" + str + "号信息吗?";
if(AfxMessageBox(str,MB_YESNO)==IDYES)
m_list.DeleteItem(nSel);
*pResult = 0;
}
7、最后实现效果


版权声明:本文为qq_50533078原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。