配置表头文件config.h:
#pragma once
// Config 对话框
class SysParameters
{
public:
CString TakePhotoTime;//拍照间隔时间
CString TakeStartTime;//拍摄开始时间
CString TakeEndTime;//拍摄结束时间
//相机参数设置//
CString SzPath;//照片默认存放地址
CString IPAddr;
CString XML1;
CString XML2;
CString SimulatorIP;
};
class Config : public CDialogEx
{
DECLARE_DYNAMIC(Config)
public:
Config(CWnd* pParent = NULL); // 标准构造函数
virtual ~Config();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_CAMERACONTROL_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
void ModifyInitConfig(SysParameters para_);
SysParameters GetConfig();
void CreatConfig();
};
config.cpp:
#include "stdafx.h"
#include "CameraControl.h"
#include "Config.h"
#include "afxdialogex.h"
// Config 对话框
IMPLEMENT_DYNAMIC(Config, CDialogEx)
Config::Config(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_CAMERACONTROL_DIALOG, pParent)
{
}
Config::~Config()
{
}
void Config::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(Config, CDialogEx)
END_MESSAGE_MAP()
// Config 消息处理程序
void Config::ModifyInitConfig(SysParameters para_)//修改
{
CString path_ = ".\\DefaultConfig.ini";
WritePrivateProfileString("Camera", "TakePhotoTime", para_.TakePhotoTime, path_);//写入
WritePrivateProfileString("Camera", "TakeStartTime", para_.TakeStartTime, path_);
WritePrivateProfileString("Camera", "TakeEndTime", para_.TakeEndTime, path_);
WritePrivateProfileString("Camera", "SzPath", para_.SzPath, path_);
}
SysParameters Config::GetConfig()
{
CreatConfig();//创建函数
SysParameters para_;
CString path_ = ".\\DefaultConfig.ini";
GetPrivateProfileString("Camera", "TakePhotoTime", NULL, para_.TakePhotoTime.GetBuffer(128), 128, path_);//获取配置表的值
GetPrivateProfileString("Camera", "TakeStartTime", NULL, para_.TakeStartTime.GetBuffer(128), 128, path_);
GetPrivateProfileString("Camera", "TakeEndTime", NULL, para_.TakeEndTime.GetBuffer(128), 128, path_);
GetPrivateProfileString("Camera", "SzPath", NULL, para_.SzPath.GetBuffer(128), 128, path_);
para_.TakePhotoTime.ReleaseBuffer();
para_.TakeStartTime.ReleaseBuffer();
para_.TakeEndTime.ReleaseBuffer();
para_.SzPath.ReleaseBuffer();
return para_;
}
void Config::CreatConfig()
{
//查找是否存在ini文件,若不存在,则生成一个新的默认设置的ini文件,这样就保证了我们更改后的设置每次都可用
CFileFind finder;
CString path_ = ".\\DefaultConfig.ini";
BOOL ifFind = finder.FindFile(path_);
if (!ifFind)
{
WritePrivateProfileString("Camera", "TakePhotoTime", "5", path_);
WritePrivateProfileString("Camera", "TakeStartTime", "1800", path_);
WritePrivateProfileString("Camera", "TakeEndTime", "0600", path_);
WritePrivateProfileString("Camera", "SzPath", "D:\Photo_data", path_);
}
}
使用的时候在项目DLG头文件里添加:
SysParameters TPPara;
Config TPConfig;
获取配置表的信息:
TPPara = TPConfig.GetConfig();//获取配置表信息
修改配置表信息:
TPPara.TakePhotoTime = StrTime;
TPConfig.ModifyInitConfig(TPPara);