易截截图软件、单文件、免安装、纯绿色、仅160KB

在MFC程序中使用XML文件配置工具栏

作者:朱金灿
来源:http://blog.csdn.net/clever101/
      现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界面美化,三是不利于人员分工,开发人员既要忙实现功能,又要忙准备好的界面素材。对界面实现文件配置化正是解决上面问题的好方法。这次我实现了使用XML文件配置工具栏。这里所谓配置就是工具栏的界面信息如工具栏标题、按钮图片、是否为分隔符都在XML文件保存,程序通过解析XML文件来获取工具栏信息来创建工具栏。这样一旦发现界面不合适可以随时修改配置文件,同时利于人员分工。
       具体的做法如下:
1. 在工程的输出目录下有一个SysConfig.xml,作为系统配置文件。其中关于工具栏的配置部分如下:
<AppToolbar valid="1" caption="基础工具">
<ToolButton file="Add.bmp" />
<ToolButton separator="true" />
<ToolButton file="Benchmark.bmp" />
<ToolButton file="Comment.bmp" />
<ToolButton file="Convert.bmp" />
<ToolButton file="Delete.bmp" />
<ToolButton file="Exit.bmp" />
</AppToolbar>

     
简单解释一下上面的节点意义:valid表示工具栏是否有效,caption表示工具栏标题,file节点为工具栏按钮所贴图片,separator表示按钮是分隔符。
2. 通过解析XML文件获取工具栏信息来创建工具栏。首先在CMainFrame类添加两个数据成员:
/**
* \brief 工具栏对应的图像列表。
*/
CImageList m_imgToobar;
/**
* \brief 系统配置文件解析器,具体看我上传的代码。
*/
CXmlParse m_SysSetting;

然后实现如下函数:
/*!
* \brief 获取exe所在的文件夹。
*
* \param [in][out]strBinPath exe程序所在的文件夹。
* \return 无。
*/
void CMainFrame::GetOutputPath(string &strBinPath)
{
TCHAR szModulePath[_MAX_PATH];
::GetModuleFileName(NULL,szModulePath,_MAX_P


相关文档:

5.9总结 Jaxp 解析xml文件两种方式__TOmcat 的配置

1.  Jaxp 解析xml文件 Dom方式
 
<?xml version="1.0" encoding="gbk"?>
<students>
<student id="001">
<name>张三</name>
<age>25</age>
</student>
<student id="002">
<name>李四</name>
& ......

xml jboss problem

the content of element type "jboss" must matched  loader-respository ,jmx-name,enforce-ejb-restriction,
security-domain,missing-method-permission-excluded-mode,unauthenticated-principal,exception-on-rollback,
webservices,enterprice-beans,assembly-descriptor,resource-managers,invoker-proxy-bin ......

java读取xml配置文件

xml文件如下 配置功能开关
<Configurations>
    <Samples>true</Samples>
    <Excepts>true</Excepts>
    <CheckFace>false</CheckFace>
    <ThumbNail>false</ThumbNail>
  &nbs ......

SQL Server SQL for xml auto 添加根节点


今天从数据库中查询出xml,同时添加一个根节点
做了如下测试:
create table TestXmlQuery(
ID int identity(1,1) not null,
Name varchar(10)
)
go
insert into [TestXmlQuery] (Name) values('测试1')
insert into [TestXmlQuery] (Name) values('测试2')
insert into [TestXmlQuery] (Name) values('测试3') ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号