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

wxwidgets 用xml来描述界面,在程序里获取 变量和事件

如果对界面美观程序比较高,手写代码是不可避免的。
但如果做的是一些像只是为了显示、控制之类的程序,可能更快的把程序捣鼓出来就好了。
wxwidgets
有这样的一个功能,就是能用xml写成界面就能显示
编辑xrc的工具是wxformbuilder,开源免费的,也足够用了,我一开始没找到怎么
生成xrc,后来某次偶然看到了下面....原来有c++,py,xrc的生成。
wxwidgets里有个例子,叫xrcdemo

体是是这样。
平时创建wxwidgets程序,我们一般用wxframe,wxdialog
拿wxframe来举例,我们一般从
wxfrrame派生,然后在初始化函数里创建控件。
MyFrame::MyFrame(wxWindow* parent)
{
wxXmlResource::Get()->LoadFrame(this, parent, wxT("main_frame"));
}

现在只要调用这一句就够了。
事件处理方面也有所变动。
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(XRCID("unload_resource_menuitem"),
MyFrame::OnUnloadResourceMenuCommand)
EVT_MENU(wxID_ABOUT,
MyFrame::OnAboutToolOrMenuCommand)
END_EVENT_TABLE()
获得相关的控件:
wxAnimationCtrl
*ctrl = XRCCTRL(*win, "controls_animation_ctrl", wxAnimationCtrl);

载xml的地方一般在app::init里面,像这样子
wxXmlResource::Get()->InitAllHandlers();
// Load all of the XRC files that will be used. You can put
everything
// into one giant XRC file if you wanted, but then
they become more
// diffcult to manage, and harder to reuse in
later projects.
// The menubar
if
(!wxXmlResource::Get()->Load(wxT("rc/menu.xrc")))
return
false;
现在还有个问题,就是缺省对中文支持不好,这个我明天来想个办法。

搞定中文了,其实不像想象中那样复杂。
我用了
wxXmlResource::Get()->SetFlags(0);
然后保存的xrc是用的utf8格式。
这样就正常显示中文了。我猜测是我的xrc里的coding上写了utf8,wxxmlresource缺省会再转一次码,可能就转出问题了


相关文档:

java实现读取XML文件数据插入到数据库中

package com.flxx.docUrl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jd ......

Retrieving an XML document using Ajax


Retrieving an XML document using Ajax
http://www.javascriptkit.com/dhtmltutors/ajaxgetpost3.shtml
When making a server request in Ajax, the data returned can be in either
plain text/html, or an XML document instead. The later is technically
just a text file as well, but with s ......

Flash as3 自定义ReadXML类读取xml 【原创】

简单的类,简化自己读取xml的过程
ReadXML.as
package
{
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.system.System;
import flash.events.EventDis ......

XML创建、读、写操作

Create:
int nFQ;
   XmlDocument doc = new XmlDocument();
   XmlAttribute
newAtt;
   //定义XML文档头文件
   XmlDeclaration dec =
doc.CreateXmlDeclaration("1.0",null,null);
   doc.AppendChild(dec);
 &n ......

XML 查询、添加、修改、删除

Query:
XmlDocument doc = new XmlDocument();
  
doc.Load(Server.MapPath(".\\db\\dbGuest.xml"));
           
//User是XML根节点,Name字节点
      lbEmail.Text =
doc.SelectSingleNode("//User ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号