MFC获取控件中的内容有多种方法,其中最直接的方法就是通过GetDlgItemText()函数,
这里以一个文本编辑框为例,代码如下:
BOOL CPageMainTab::SaveConfigDataToFile(char*szpConfigFile)
{
CString strCfg;
CString strTmp;
m_PageDaGuai.GetDlgItemText(IDC_EDIT_SITE,strTmp);
strTmp.Format("定点打怪坐标=%s\n",strTmp);
strCfg+=strTmp;
//把信息保存到文件里
FILE *pfile;
fopen_s(&pfile,szpConfigFile,"w");
fputs(strCfg,pfile);
fclose(pfile);
return TRUE;
}
void CPageMainTab::OnBnClickedBtnReadSet()
{
// TODO: 在此添加控件通知处理程序代码
SaveConfigDataToFile("rxConfig.ini");
}
上面的代码加了点功能:把获取到的信息保存到了文件rxConfig.ini里,运行程序如下图:
这个方法虽然直接,但是在制作游戏辅助时不建议这么做。因为游戏辅助上的控件太多太多,这么做反而比较麻烦。下面再介绍一种方法:通过类向导给每个控件关联一个value类型的变量,注意一定要是value类型的变量,操作方法如下图:
然后在代码里可以这样写,代码如下:
BOOL CPageMainTab::SaveConfigDataToFile(char*szpConfigFile)
{
UpdateData(true);//把控件里的内容更新到变量里
CString strCfg;
CString strTmp;
m_PageDaGuai.GetDlgItemText(IDC_EDIT_SITE,strTmp);
strTmp.Format("定点打怪坐标=%s\n",strTmp);
strCfg+=strTmp;
//m_PageDaGuai.GetDlgItemText(IDC_COMBO_KILL_MONS_MAP,strTmp);//这行就不需要了
strTmp.Format("杀怪地图=%s\n",m_PageDaGuai.m_kill_mons_map_value);//直接在这里用关联的变量
strCfg+=strTmp;
FILE *pfile;
fopen_s(&pfile,szpConfigFile,"w");
fputs(strCfg,pfile);
fclose(pfile);
return TRUE;
}
void CPageMainTab::OnBnClickedBtnReadSet()
{
// TODO: 在此添加控件通知处理程序代码
SaveConfigDataToFile("rxConfig.ini");
}
这里在代码开头要加上UpdateData(true);意思是把控件里的内容更新到变量里,反之UpdateData(false);意思是把变量里的内容更新到控件里。这样就可以实现一键保存用户配置信息和一键设置配置信息。执行程序效果如下图:
结束。