使用配置文件初始化CCombox控件

配置文件的读取

      在使用配置文件时,Windows提供了GetPrivateProfileSection函数用于读取配置文件。类似的还有GetPrivateProfileSectionNames、GetPrivateProfileString等一系列函数,用于操作配置文件。参考:http://msdn.microsoft.com/en-us/library/ms724348%28VS.85%29.aspx

     在这里将要使用到GetPrivateProfileSection函数,其定义如下所示:

DWORD WINAPI GetPrivateProfileSection(
    _In_ LPCTSTR lpAppName,
    _Out_ LPTSTR lpReturnedString,
    _In_ DWORD nSize,
    _In_ LPCTSTR lpFIleName
    );
     参数说明:

    lpAppName [in] 配置文件中区域名称。

    lpReturnedString [out] 接收区域下面键值对的数据缓冲区。改缓冲区由一个或多个以NULL结尾的字符串填充;最后一个字符串由两个NULL字符结尾。

    nSize [in] lpReturnedString数据缓冲区大小(字节为单位)。最大值32767个字节。

    lpFileName [in] 配置文件名称。如果该参数不包含文件的绝对路径,系统在windows目录寻找改文件。

    返回值:

    返回取得的字符个数,不包括结尾的NULL字符。


 配置文件的写法

     Windows的配置文件以.ini结尾,其写入如下所示:

;分号代表注释,最好单独一行用于写注释
[section1]
key1=value1
key2=value2

;另起一个区域
[section2]
key3=value3
key4=value4
    如果该文件为config.ini,要获取section1下的配置,可以采用如下方式调用GetPrivateProfileSection。

GetPrivateProfileSection("section", out, size, "config.ini");


利用配置文件初始化CCombox

    为了能使用配置文件初始化CCombox控件,在Section中,不采用key=value方式,而是直接写入CCombox待插入的选项。

    例如:

;密钥强度配置
[key strength]
512
1024
2048

    首先,为对话框添加一个CCombox控件,并为其关联一个变量名为m_keyStrengthCB。接下来在OnInitDialog中添加下列代码:

CString configFile(_T(".\\config.ini"));  // 配置文件名称
CString section(_T("key strength"));      // 区域名称
_TCHAR buf[10240];                        // 缓冲区大小
DWORD readLen = ::GetPrivateProfileSection(section, buf, 10240, configFile);
	
_TCHAR *pBuf = buf;
int i = 0;
while (readLen) {
	CString keyStrength(pBuf);
	m_keyStrengthCB.InsertString(i++, keyStrength);   // 插入CCombox中
	int len = keyStrength.GetLength();
	pBuf += len + 1;             // 获取下一个插入对象
	readLen -= len + 1;                 
}
m_keyStrengthCB.SetCurSel(1);        // 默认选中第二个,注:CCombox中序号从0开始
    经过上述步骤,就能通配置文件方便的为CCombox添加选项。

    效果图如下所示:

                                 图1

                                         图2

    图2在图1的基础上通过修改config.ini配置文件,可以非常方便的修改CCombox的选项,不需要再程序中加入任何代码,然后在编译生成可执行文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值