2024-02-11 c++

🌸 MFC工资系统

1。新建MFC项目(基于对话框、静态库)
2。添加控件,删除初始的3个多余控件
加3个static_text ,其caption分别是工号、名字、工资
加3个edit_control,其ID 分别为IDC_EDIT1、IDC_EDIT2、IDC_EDIT3(默认)
加3个按钮,修改caption为ADD,DEL,MODIFY
加一个List_control,其ID 为IDC_LIST1(默认),属性View修改为report,添加变量:IDC_LIST1变量名为pList,IDC_EDIT1~3分别为Num、Name、Money。
在这里插入图片描述
在这里插入图片描述
3。添加代码

双击按钮1,添加代码:

void CMFCApplication9Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	CString Num,Name,Money;
	GetDlgItemText(IDC_EDIT1, Num);
	GetDlgItemText(IDC_EDIT2, Name);
	GetDlgItemText(IDC_EDIT3, Money);
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST1);
	int nCount = pList->GetItemCount();//从尾部插入
	pList->InsertItem(nCount, Num); 
	pList->SetItemText(nCount, 1, Name); 
	pList->SetItemText(nCount, 2, Money);
}

同理添加按钮2,3的代码

void CMFCApplication9Dlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST1);
	int nSel = pList->GetSelectionMark();//基于虚线选中
	if (nSel<0){ 
		AfxMessageBox(L"请先选中一行再进行删除!"); 
		return;
	}
	pList->DeleteItem(nSel);
}


void CMFCApplication9Dlg::OnBnClickedButton3()
{
	// TODO: 在此添加控件通知处理程序代码
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST1);
	int nSel = pList->GetSelectionMark();//基于虚线选中
	if (nSel < 0) {
		AfxMessageBox(L"请先选中一行再进行修改!");
		return;
	}
	CString Num, Name, Money;
	GetDlgItemText(IDC_EDIT1, Num);
	if (IDNO == AfxMessageBox(L"确认修改工号:" + Num + L"的数据么?", MB_YESNO)) return;
	GetDlgItemText(IDC_EDIT2, Name);
	pList->SetItemText(nSel, 1, Name);
	GetDlgItemText(IDC_EDIT3, Money);
	pList->SetItemText(nSel, 2, Money);
}

获取List控件的ID,然后在控件中添加列名:工号,姓名,工资:

BOOL CMFCApplication9Dlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// 将“关于...”菜单项添加到系统菜单中。
	CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST1);
	pList->InsertColumn(0, L"工号", 0, 120);
	pList->InsertColumn(1, L"姓名", 0, 160);
	pList->InsertColumn(2, L"工资(万元)", 0, 180);
	/*...*/
}

4。运行
运行结果:
在这里插入图片描述
可以添加员工的工号,姓名,工资,通过工号选中删除的员工,修改选中的员工。

ERROR

ERROR:无法将参数转换为LPCTSTR
在这里插入图片描述
解决方法:还是字符串前加L


🌸 MFC登录系统

1。新建mfc项目,项目名qq
2。资源视图 根文件夹右键添加Dlg资源IDD_DIALOG1
3。在DIALOG1添加控件

2个static_text 账号、密码
2个Edit control

4。双击一个按钮,创建类,类名为CLoginDlg
5。双击按钮,进入CLoginDlg.cpp添加代码

void CLoginDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	CString Name, Pass;
	GetDlgItemText(IDC_EDIT1, Name);
	GetDlgItemText(IDC_EDIT2, Pass);
	Name.MakeLower();
	if(Name=="admin"&& Pass=="123456")	
		CDialog::OnOK();
	else {
		AfxMessageBox(L"账号or密码错误,请重新输入");
		SetDlgItemText(IDC_EDIT1, L"");
		SetDlgItemText(IDC_EDIT2, L"");
		GetDlgItem(IDC_EDIT1)->SetFocus();
	}
}

6。在qq.cpp中修改代码

#include "LoginDlg.h"
BOOL CqqApp::InitInstance()
{
	//...
	// TODO: 应适当修改该字符串,
	CLoginDlg idlg;
	if (idlg.DoModal() == IDCANCEL) return FALSE;
	// 例如修改为公司或组织名
	//...
	else if (nResponse == IDCANCEL)
	{
		// TODO: 在此放置处理何时用
		return FALSE;
		//  “取消”来关闭对话框的代码
	}
	//...
}

7。在主对话框IDC_QQ_DIALOG中新建按钮,caption为重新登陆,双击按钮,添加代码

#include "LoginDlg.h"
void CqqDlg::OnBnClickedDialog1()
{
	// TODO: 在此添加控件通知处理程序代码
	ShowWindow(SW_HIDE);
	CLoginDlg dlg;
	if (dlg.DoModal() == IDCANCEL)
		OnCancel();
	else
		ShowWindow(SW_SHOW);
}

8。运行,结果如下:
在这里插入图片描述
账号admin密码123456

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值