﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-野猪世界 专注游戏客户端技术-随笔分类-cegui</title><link>http://www.cppblog.com/zhuyeaini/category/14136.html</link><description>ogre cegui qt bullet python</description><language>zh-cn</language><lastBuildDate>Sat, 18 Sep 2010 04:30:41 GMT</lastBuildDate><pubDate>Sat, 18 Sep 2010 04:30:41 GMT</pubDate><ttl>60</ttl><item><title>CEGUI 探讨 定制</title><link>http://www.cppblog.com/zhuyeaini/archive/2010/06/29/118895.html</link><dc:creator>野猪</dc:creator><author>野猪</author><pubDate>Tue, 29 Jun 2010 05:59:00 GMT</pubDate><guid>http://www.cppblog.com/zhuyeaini/archive/2010/06/29/118895.html</guid><wfw:comment>http://www.cppblog.com/zhuyeaini/comments/118895.html</wfw:comment><comments>http://www.cppblog.com/zhuyeaini/archive/2010/06/29/118895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/zhuyeaini/comments/commentRss/118895.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/zhuyeaini/services/trackbacks/118895.html</trackback:ping><description><![CDATA[<img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emfilm.gif" align="absmiddle" border="0"> 我喜欢看张国荣的《东邪西毒》<br>讨论对象：CEGUI 0.7.1<br>1.从源代码开始<br>下完cegui 0.7.1 解压到当前文件夹 得到一个CEGUI-0.7.1文件夹 下载deps 解压到该目录下 形成类似<br>./CEGUI-0.7.1<br>./CEGUI-0.7.1/dependencies<br>./CEGUI-0.7.1/bin<br>的目录结构 转到./CEGUI-0.7.1/projects/premake/ <br>里面有许多版本的VS 我的版本是VS 2008的 在运行build_vs2008.bat之前 打开config.lua<br>该文件定制cegui的各个模块 来看下我的：<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">--</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;CEGUI&nbsp;premake&nbsp;configuration&nbsp;script<br></span><span style="color: #000000;">--</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;comment&nbsp;this&nbsp;to&nbsp;disable&nbsp;debug&nbsp;suffixes&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;dynamic&nbsp;module&nbsp;dlls<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;you&nbsp;want&nbsp;to&nbsp;use&nbsp;another&nbsp;suffix,&nbsp;just&nbsp;change&nbsp;the&nbsp;string&nbsp;:)<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;all&nbsp;the&nbsp;debug&nbsp;cegui&nbsp;libraries&nbsp;are&nbsp;built&nbsp;with&nbsp;this&nbsp;suffix<br>DEBUG_DLL_SUFFIX&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">_d</span><span style="color: #800000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;SDK&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;dependency&nbsp;paths<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;{&nbsp;base,&nbsp;include_suffix,&nbsp;library_suffix&nbsp;}<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;base&nbsp;can&nbsp;be&nbsp;absolute&nbsp;</span><span style="color: #0000ff;">or</span><span style="color: #000000;">&nbsp;relative&nbsp;to&nbsp;the&nbsp;root&nbsp;cegui_mk2&nbsp;dir<br>IRRLICHT_PATHS&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">irrlicht-1.4</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">include</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">lib/Win32-visualstudio</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;}<br>OGRE_PATHS&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">D:/wildpigdev/ogre/ogre_src_v1-7-1/vc9/sdk</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">include/OGRE</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">lib</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;}<br>OIS_PATHS&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;{&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">D:/wildpigdev/ogre/ogre_src_v1-7-1/vc9/sdk</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">include/OIS</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">lib</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;}<br><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;Irrlicht&nbsp;SDK&nbsp;Version<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">14</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;means&nbsp;</span><span style="color: #000000;">1.4</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">or</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">1.5</span><span style="color: #000000;">.x&nbsp;</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">16</span><span style="color: #000000;">&nbsp;means&nbsp;</span><span style="color: #000000;">1.6</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;above?)<br>CEGUI_IRR_SDK_VERSION&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">14</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;OIS&nbsp;API&nbsp;version&nbsp;to&nbsp;be&nbsp;used&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;the&nbsp;Ogre&nbsp;samples&nbsp;base&nbsp;app.<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;true:&nbsp;use&nbsp;older&nbsp;numKeyboards&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;numMice<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;false:&nbsp;use&nbsp;getNumberOfDevices<br>CEGUI_OLD_OIS_API&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;Lua&nbsp;version<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">51</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">5.1</span><span style="color: #000000;">&nbsp;(</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;above?)&nbsp;From&nbsp;</span><span style="color: #000000;">0.7</span><span style="color: #000000;">.0&nbsp;onwards,&nbsp;lua&nbsp;</span><span style="color: #000000;">5.0</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;no&nbsp;longer&nbsp;supported.<br>CEGUI_LUA_VER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">51</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;Freetype&nbsp;library<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;CEGUI&nbsp;uses&nbsp;the&nbsp;freetype&nbsp;library&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;some&nbsp;of&nbsp;it</span><span style="color: #800000;">'</span><span style="color: #800000;">s&nbsp;font&nbsp;support.&nbsp;&nbsp;To&nbsp;disable</span><span style="color: #800000;"><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;the&nbsp;use&nbsp;of&nbsp;freetype,&nbsp;set&nbsp;this&nbsp;to&nbsp;false.<br>CEGUI_USE_FREETYPE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;PCRE&nbsp;library<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;CEGUI&nbsp;uses&nbsp;the&nbsp;pcre&nbsp;library&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;it</span><span style="color: #800000;">'</span><span style="color: #800000;">s&nbsp;regular&nbsp;expression&nbsp;based&nbsp;string</span><span style="color: #800000;"><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;validation&nbsp;as&nbsp;used&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;the&nbsp;Editbox&nbsp;(</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;derived&nbsp;classes,&nbsp;such&nbsp;as&nbsp;Spinner).<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;To&nbsp;disable&nbsp;the&nbsp;use&nbsp;of&nbsp;PCRE&nbsp;(</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;therefore&nbsp;the&nbsp;validation&nbsp;factilities),&nbsp;set<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;this&nbsp;to&nbsp;false.&nbsp;&nbsp;(Attempts&nbsp;to&nbsp;set&nbsp;validation&nbsp;string&nbsp;will&nbsp;throw).<br>CEGUI_USE_PCRE_REGEX&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;CEGUI::DefaultLogger<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;To&nbsp;disable&nbsp;compilation&nbsp;</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;use&nbsp;of&nbsp;the&nbsp;CEGUI::DefaultLogger,&nbsp;set&nbsp;this&nbsp;to<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;false.<br></span><span style="color: #000000;">---</span><span style="color: #000000;"><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;Note:&nbsp;If&nbsp;you&nbsp;disable&nbsp;this,&nbsp;you&nbsp;MUST&nbsp;provide&nbsp;an&nbsp;alternative&nbsp;CEGUI::Logger<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;based&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;instantiate&nbsp;it&nbsp;before&nbsp;creating&nbsp;the&nbsp;main&nbsp;CEGUI::System&nbsp;object.<br>CEGUI_USE_DEFAULT_LOGGER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;BiDirectional&nbsp;text&nbsp;support.<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;To&nbsp;enable&nbsp;support&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;bi</span><span style="color: #000000;">-</span><span style="color: #000000;">directional&nbsp;text&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;CEGUI,&nbsp;set&nbsp;CEGUI_BIDI_SUPPORT<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;to&nbsp;true.<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;With&nbsp;bidirectional&nbsp;support&nbsp;enabled,&nbsp;CEGUI_USE_MINIBIDI&nbsp;then&nbsp;controls&nbsp;whether<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;that&nbsp;support&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;provided&nbsp;viaan&nbsp;embedded&nbsp;copy&nbsp;of&nbsp;minibidi&nbsp;(true)&nbsp;</span><span style="color: #0000ff;">or</span><span style="color: #000000;">&nbsp;an<br></span><span style="color: #000000;">---</span><span style="color: #000000;">&nbsp;external&nbsp;copy&nbsp;of&nbsp;the&nbsp;fribidi&nbsp;library&nbsp;(false).<br>CEGUI_BIDI_SUPPORT&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false;<br>CEGUI_USE_MINIBIDI&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true;<br><br></span><span style="color: #000000;">-------------</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;Renderers<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;this&nbsp;controls&nbsp;which&nbsp;renderer&nbsp;modules&nbsp;are&nbsp;built<br>OPENGL_RENDERER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>DIRECT3D9_RENDERER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>DIRECT3D10_RENDERER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>IRRLICHT_RENDERER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>OGRE_RENDERER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #000000;">----------------</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;Image&nbsp;Codecs<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;this&nbsp;controls&nbsp;which&nbsp;image&nbsp;codecs&nbsp;are&nbsp;built<br>TGA_IMAGE_CODEC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>SILLY_IMAGE_CODEC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>DEVIL_IMAGE_CODEC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>FREEIMAGE_IMAGE_CODEC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br>CORONA_IMAGE_CODEC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;this&nbsp;setting&nbsp;selects&nbsp;the&nbsp;default&nbsp;image&nbsp;codec&nbsp;module<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;can&nbsp;be&nbsp;either&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">tga</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">silly</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">devil</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">freeimage</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">or</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">corona</span><span style="color: #800000;">"</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;SILLY&nbsp;was&nbsp;written&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;CEGUI<br>DEFAULT_IMAGE_CODEC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">freeimage</span><span style="color: #800000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">---------------</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;Window&nbsp;Renderers<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;controls&nbsp;window&nbsp;renderers&nbsp;built<br>FALAGARD_WR&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;default&nbsp;WR<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;available:&nbsp;falagard<br>DEFAULT_WINDOW_RENDERER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">falagard</span><span style="color: #800000;">"</span><span style="color: #000000;"><br><br><br><br><br></span><span style="color: #000000;">---------------</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;XML&nbsp;parsers<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;this&nbsp;controls&nbsp;which&nbsp;xml&nbsp;parser&nbsp;modules&nbsp;are&nbsp;built<br>EXPAT_PARSER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br>XERCES_PARSER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>TINYXML_PARSER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>LIBXML_PARSER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;this&nbsp;selects&nbsp;the&nbsp;default&nbsp;XML&nbsp;parser&nbsp;module<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;can&nbsp;be&nbsp;either&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">expat</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">xerces</span><span style="color: #800000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">tinyxml</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">or</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">libxml</span><span style="color: #800000;">"</span><span style="color: #000000;"><br>DEFAULT_XML_PARSER&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">expat</span><span style="color: #800000;">"</span><span style="color: #000000;"><br><br><br></span><span style="color: #000000;">-------</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;Lua<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;this&nbsp;controls&nbsp;whether&nbsp;CEGUILua&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;enabled<br>LUA_SCRIPT_MODULE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;disable&nbsp;this&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;a&nbsp;smaller&nbsp;</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;faster,&nbsp;but&nbsp;less&nbsp;safe&nbsp;Lua&nbsp;module<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;only&nbsp;affects&nbsp;Release&nbsp;builds.&nbsp;Debug&nbsp;</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;ReleaseWithSymbols&nbsp;always<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;enable&nbsp;this<br>LUA_SCRIPT_MODULE_SAFE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;enable&nbsp;this&nbsp;to&nbsp;build&nbsp;the&nbsp;bundled&nbsp;tolua</span><span style="color: #000000;">++</span><span style="color: #000000;">&nbsp;as&nbsp;a&nbsp;static&nbsp;library<br>TOLUA_STATIC&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br><br><br></span><span style="color: #000000;">-----------</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;Samples<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;remember&nbsp;you&nbsp;have&nbsp;to&nbsp;edit&nbsp;CEGUISamplesConfig.h&nbsp;as&nbsp;well&nbsp;this&nbsp;just&nbsp;controls<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;dependencies&nbsp;etc.&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;the&nbsp;renderer&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;disabled&nbsp;this&nbsp;has&nbsp;no&nbsp;effect<br>SAMPLES_GL&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>SAMPLES_DX9&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>SAMPLES_DX10&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>SAMPLES_IRRLICHT&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;false<br>SAMPLES_OGRE&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;this&nbsp;setting&nbsp;controls&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;the&nbsp;samples&nbsp;should&nbsp;be&nbsp;included&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;the&nbsp;same<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;solution&nbsp;as&nbsp;the&nbsp;core&nbsp;libraries.&nbsp;If&nbsp;this&nbsp;setting&nbsp;</span><span style="color: #0000ff;">is</span><span style="color: #000000;">&nbsp;disabled&nbsp;you&nbsp;can<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;still&nbsp;generate&nbsp;a&nbsp;seperate&nbsp;solution&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;the&nbsp;samples<br></span><span style="color: #000000;">--</span><span style="color: #000000;"><br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;due&nbsp;to&nbsp;a&nbsp;missing&nbsp;feature&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;premake&nbsp;enabling&nbsp;this&nbsp;will&nbsp;cause&nbsp;the<br></span><span style="color: #000000;">--</span><span style="color: #000000;">&nbsp;output&nbsp;files&nbsp;to&nbsp;be&nbsp;placed&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;cegui_mk2</span><span style="color: #000000;">/</span><span style="color: #000000;">bin&nbsp;</span><span style="color: #0000ff;">and</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">not</span><span style="color: #000000;">&nbsp;cegui_mk2</span><span style="color: #000000;">/</span><span style="color: #000000;">Samples</span><span style="color: #000000;">/</span><span style="color: #000000;">bin<br></span><span style="color: #000000;">--</span><span style="color: #000000;"><br>SAMPLES_INCLUDED&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;true<br></span></div>
<br>我是用ogre来渲染的 需要注意的是<span style="color: #000000;">OGRE_PATHS </span><span style="color: #000000;">OIS_PATHS</span> 该路径自己选择 其他的都可根据个人需求定制 比如ImageCodec<br>定制完该lua脚本后 生成对应的VS版本 编译下 一般没啥问题 然后 可以看看自带的ogre的gui例子<br>说说初始化 在这个版本中相当简单 一行代码搞定<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">// 初始化<br>CEGUI::OgreRenderer::bootstrapSystem();<br>// 创建gui<br>CEGUI::SchemeManager::getSingleton().create("TaharezLook.scheme");<br>CEGUI::WindowManager&amp; winMgr = CEGUI::WindowManager::getSingleton();<br>CEGUI::Window* root= winMgr.loadWindowLayout("yezhu.layout");<br>CEGUI::System::getSingleton().setGUISheet(root);<br>CEGUI::System::getSingletonPtr()-&gt;setDefaultMouseCursor((CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow");<br></span></div>
如果想知道更多 可以看其源代码<br>如果要定制窗口 需要看看<span style="color: #000000;">TaharezLook.scheme这个文件 </span>这是个xml文件 里面放着Imageset定义 <br>Font定义 LookNFeel定义 了解这些新名词是定制窗口的关键 事情可以这样理解 <br>LookNFeel文件在这里起着关键因素 我们生成的gui窗口的外貌和这个文件是息息相关的<br>打开这个LookNFeel文件 我们可以看到各种窗口的外观定义 如果我们要定制外观 <br>修改现有的或者增加新的外观定义 特别感兴趣的可以 看看《火炬之光》里面的gui <br>迅雷单机游戏里有下的 玩起来还行。。。 ogre+cegui做的 可以打开她的gui文件看看 <br><br>2.定制窗口<br>好 接下来 我们要定制窗口了 假如我们现在需要个性点的窗口 假如叫她MyButton 继承自CEGUI::PushButton <br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#ifndef MYBUTTON_H<br></span><span style="color: #0000ff;">#define</span><span style="color: #000000;"> MYBUTTON_H</span><span style="color: #000000;"></span><span style="color: #000000;"><br>#include&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">CEGUI.h</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;CEGUI<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;"> MyButton :&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;"> PushButton<br>&nbsp;&nbsp;&nbsp;&nbsp;{</span><span style="color: #000000;"><br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MyButton(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;String&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">type,&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;String&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">name);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">virtual</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">~MyButton</span><span style="color: #000000;">();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">static</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;String&nbsp;WidgetTypeName;</span><span style="color: #000000;"></span><span style="color: #0000ff;"></span>//工厂名<br><span style="color: #000000;">&nbsp;&nbsp;&nbsp;};<br>}<br></span><span style="color: #0000ff;">#endif</span></div>
需要注意的是WidgetTypeName 我们在创建窗口的时候最终会通过该名字来找到相应的工厂<br>&nbsp;每一个窗口都有相应的工厂用来创建自己<br>如果你查看cegui的初始化代码 你会看到一些类似以下的代码：<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">GUISheet</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br>WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">DragContainer</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">() <br>WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">ScrolledContainer</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br>WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">ClippedContainer</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br>WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Checkbox</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br>WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">PushButton</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br>WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">RadioButton</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();<br>WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">Combobox</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">();</span><span style="color: #000000;"><br></span><span style="color: #000000;"></span></div>
所以 现在 我们要做的也是加入MyButton对应的工厂 不错 正如你所看到的 一行代码搞定<br><span style="color: #000000;">
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">WindowFactoryManager::addFactory</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;TplWindowFactory</span><span style="color: #000000;">&lt;MyButton</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">()</span></div>
</span>注意的是 很显然 该行代码要在我们使用该窗口之前调用<br>接下来 看看MyButton的实现文件<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include&nbsp;</span><span style="color: #000000;">"MyButton</span><span style="color: #000000;">.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #0000ff;">namespace</span><span style="color: #000000;">&nbsp;CEGUI<br>{<br>&nbsp;&nbsp;&nbsp; // 工厂名 通过该名字找到对应工厂<br>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;String MyButton::WidgetTypeName(</span><span style="color: #000000;">"</span><span style="color: #000000;">Custom/MyButton</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>&nbsp;&nbsp;&nbsp; MyButton::MyButton(</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;String&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">type,&nbsp;</span><span style="color: #0000ff;">const</span><span style="color: #000000;">&nbsp;String&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">name)&nbsp;:PushButton(type,&nbsp;name)<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp; MyButton::</span><span style="color: #000000;">~</span><span style="color: #000000;">MyButton()<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}</span></div>
没啥特别的地方 你可以放置任何其他数据 好 目前为止 我们新建了一个窗口类 并把对应的工厂加入系统 <br>回过头看TaharezLook.scheme文件 我们可以看到里面有许多类似这样的元素：<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FalagardMapping&nbsp;</span><span style="color: #ff0000;">WindowType</span><span style="color: #0000ff;">="TaharezLook/Button"</span><span style="color: #ff0000;">&nbsp;TargetType</span><span style="color: #0000ff;">="CEGUI/PushButton"</span><span style="color: #ff0000;">&nbsp;Renderer</span><span style="color: #0000ff;">="Falagard/Button"</span><span style="color: #ff0000;">&nbsp;LookNFeel</span><span style="color: #0000ff;">="TaharezLook/Button"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FalagardMapping&nbsp;</span><span style="color: #ff0000;">WindowType</span><span style="color: #0000ff;">="TaharezLook/Checkbox"</span><span style="color: #ff0000;">&nbsp;TargetType</span><span style="color: #0000ff;">="CEGUI/Checkbox"</span><span style="color: #ff0000;">&nbsp;Renderer</span><span style="color: #0000ff;">="Falagard/ToggleButton"</span><span style="color: #ff0000;">&nbsp;LookNFeel</span><span style="color: #0000ff;">="TaharezLook/Checkbox"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FalagardMapping&nbsp;</span><span style="color: #ff0000;">WindowType</span><span style="color: #0000ff;">="TaharezLook/ImageButton"</span><span style="color: #ff0000;">&nbsp;TargetType</span><span style="color: #0000ff;">="CEGUI/PushButton"</span><span style="color: #ff0000;">&nbsp;Renderer</span><span style="color: #0000ff;">="Falagard/Button"</span><span style="color: #ff0000;">&nbsp;LookNFeel</span><span style="color: #0000ff;">="TaharezLook/ImageButton"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"></span><span style="color: #0000ff;"></span><span style="color: #000000;"></span><span style="color: #0000ff;"></span><span style="color: #0000ff;"></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FalagardMapping&nbsp;</span><span style="color: #ff0000;">WindowType</span><span style="color: #0000ff;">="TaharezLook/Titlebar"</span><span style="color: #ff0000;">&nbsp;TargetType</span><span style="color: #0000ff;">="CEGUI/Titlebar"</span><span style="color: #ff0000;">&nbsp;Renderer</span><span style="color: #0000ff;">="Falagard/Titlebar"</span><span style="color: #ff0000;">&nbsp;LookNFeel</span><span style="color: #0000ff;">="TaharezLook/Titlebar"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FalagardMapping&nbsp;</span><span style="color: #ff0000;">WindowType</span><span style="color: #0000ff;">="TaharezLook/SystemButton"</span><span style="color: #ff0000;">&nbsp;TargetType</span><span style="color: #0000ff;">="CEGUI/PushButton"</span><span style="color: #ff0000;">&nbsp;Renderer</span><span style="color: #0000ff;">="Falagard/Button"</span><span style="color: #ff0000;">&nbsp;LookNFeel</span><span style="color: #0000ff;">="TaharezLook/Button"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FalagardMapping&nbsp;</span><span style="color: #ff0000;">WindowType</span><span style="color: #0000ff;">="TaharezLook/Editbox"</span><span style="color: #ff0000;">&nbsp;TargetType</span><span style="color: #0000ff;">="CEGUI/Editbox"</span><span style="color: #ff0000;">&nbsp;Renderer</span><span style="color: #0000ff;">="Falagard/Editbox"</span><span style="color: #ff0000;">&nbsp;LookNFeel</span><span style="color: #0000ff;">="TaharezLook/Editbox"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"></span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">FalagardMapping&nbsp;</span><span style="color: #ff0000;">WindowType</span><span style="color: #0000ff;">="TaharezLook/Menubar"</span><span style="color: #ff0000;">&nbsp;TargetType</span><span style="color: #0000ff;">="CEGUI/Menubar"</span><span style="color: #ff0000;">&nbsp;Renderer</span><span style="color: #0000ff;">="Falagard/Menubar"</span><span style="color: #ff0000;">&nbsp;LookNFeel</span><span style="color: #0000ff;">="TaharezLook/Menubar"</span><span style="color: #0000ff;">/&gt;</span><span style="color: #000000;"><br></span></div>
WindowType是我们在创建窗口时用到的名字 当然 我们也可以直接用后面的TargetType <br>该名字就是对应的工厂名 Render不用去管她 相当于如何渲染 <br>LookNFeel是重点 在对应的LookNFeel文件中我们可以找到该名字对应的定义 <br>就是这些定义使得我们的窗口会呈现各种外观 所以下面的工作就是写LookNFeel定义 <br>并通过程序加入如上的映射<br>好 关于如何写LookNFeel定义 好吧 这是另外一个主题了 在这里 <br>我们假设在外观文件中新增一个外观定义&#8220;CustomLook/MyButton&#8221;<br>现在 我们要加入一个映射：<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">CEGUI::WindowFactoryManager</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">&nbsp;wfMgr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;CEGUI::WindowFactoryManager::getSingleton(); </span><span style="color: #000000;"><br>wfMgr.addFalagardWindowMapping(</span><span style="color: #000000;">"</span><span style="color: #0000ff;">TaharezLook/MyButton</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;"></span><span style="color: #000000;">Custom/MyButton</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span>CustomLook/MyButton<span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Falagard/Button</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span></div>
映射函数参数依次是 映射名 工厂名 外观定义名 Render名<br>好了 现在你就可以使用这个新窗口了<br>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">CEGUI::WindowManager&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">&nbsp;m_WndMgr&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;CEGUI::WindowManager::getSingletonPtr();<br>m_WndMgr-&gt;createWindow("TaharezLook/MyButton","mytestwindow");<br></span></div>
createWindow会从对应映射中找到工厂创建窗口<br>基本就是这样 over~<img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emrosesad.gif" align="absmiddle" border="0"><br><br>PS:<br>另外 当我们只需要改变某个窗口的lookNFeel定义时 <br>调用void Window::setLookNFeel(const String&amp; look)<br>可以在运行时改变窗口的lookNFeel定义<br><br>   <img src ="http://www.cppblog.com/zhuyeaini/aggbug/118895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/zhuyeaini/" target="_blank">野猪</a> 2010-06-29 13:59 <a href="http://www.cppblog.com/zhuyeaini/archive/2010/06/29/118895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>