• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-341  評(píng)論-2670  文章-0  trackbacks-0
                這篇文章描述的一個(gè)圖形元素模板終于通過了冒煙測(cè)試。下面將展示模板的XML代碼、調(diào)用模板的代碼以及截圖。

                下面的XML描述了一個(gè)黑變藍(lán)底的長方形里面居中一個(gè)文字。
             1 <?xml version="1.0" encoding="utf-8" ?>
             2 <irconfig xmlns="http://tempuri.org/irconfig.xsd">
             3   <resources>
             4     <brush name="blue_brush" kind="solid">
             5       <main_color r="128" g="255" b="255" a="255" />
             6     </brush>
             7     <brush name="black_brush" kind="solid">
             8       <main_color r="0" g="0" b="0" a="255"/>
             9     </brush>
            10     <pen name="border_pen" brush="black_brush" endcap="round" join="round" weight="5"/>
            11     <font name="text_font" face="微軟雅黑" size="96"/>
            12   </resources>
            13   <templates>
            14     <template name="display">
            15       <properties>
            16         <property name="x" type="int" default="0"/>
            17         <property name="y" type="int" default="0"/>
            18         <property name="w" type="int" default="100"/>
            19         <property name="h" type="int" default="100"/>
            20         <property name="content" type="str" default=""/>
            21       </properties>
            22       <content>
            23         <rectangle x="$x" y="$y" width="$w" height="$h" pen="border_pen" brush="blue_brush">
            24           <text
            25             font="text_font"
            26             brush="black_brush"
            27             x="($w-this.width)/2"
            28             y="($h-this.height)/2"
            29             text="$content"
            30             />
            31         </rectangle>
            32       </content>
            33     </template>
            34   </templates>
            35 </irconfig>
            36 

                于是我們可以把模板“display”創(chuàng)建之后,設(shè)置x、y、w、h、content,然后顯示在一個(gè)窗口上:
             1 class ConfigForm : public VL_WinForm
             2 {
             3 protected:
             4     IVL_IrFactory::Ptr                FFactory;
             5     IVL_IrCanvas::Ptr                FCanvas;
             6     VL_IrConfigLoader::Ptr            FLoader;
             7     VL_IrConfig::Ptr                FConfig;
             8     VL_IrTemplateInstance::Ptr        FInstance;
             9 public:
            10     ConfigForm():VL_WinForm(true)
            11     {
            12         SetBorder(vwfbSingle);
            13         SetMinimizeBox(false);
            14         SetMaximizeBox(false);
            15         SetClientWidth(800);
            16         SetClientHeight(600);
            17         SetText(L"Vczh Interaction Renderer Template Test");
            18 
            19         FFactory=CreateInteractionFactory(L"GDI");
            20         FCanvas=FFactory->CreateCanvas(this);
            21         FLoader=new VL_IrConfigLoader(FFactory);
            22         FConfig=FLoader->Load(VFileName(GetApplication()->GetAppName()).MakeAbsolute(L"..\\Renderer\\IrConfig_Test.xml").GetStrW());
            23 
            24 
            25         VL_IrBrushRec WhiteBrushRec;
            26         WhiteBrushRec.BrushKind=VL_IrBrushRec::bkSolid;
            27         WhiteBrushRec.MainColor=VL_IrColor(255,255,255);
            28         IVL_IrBrush::Ptr WhiteBrush=FFactory->CreateBrush(WhiteBrushRec);
            29 
            30         IVL_IrRectangle::Ptr Root=FFactory->CreateRectangle();
            31         Root->Properties()->SetBrush(WhiteBrush);
            32         Root->Update(VL_IrPoint(0,0),VL_IrPoint(800,600));
            33         FCanvas->SetRootElement(Root);
            34 
            35         FInstance=FConfig->FindTemplate(L"display")->CreateInstance();
            36         for(VInt i=0;i<FInstance->GetRootElements().GetCount();i++)
            37         {
            38             Root->Container()->AddChild(FInstance->GetRootElements()[i]);
            39         }
            40 
            41         FInstance->GetInts()[L"x"]=100;
            42         FInstance->GetInts()[L"y"]=100;
            43         FInstance->GetInts()[L"w"]=600;
            44         FInstance->GetInts()[L"h"]=400;
            45         FInstance->GetStrs()[L"content"]=L"Template";
            46         FInstance->Update();
            47 
            48         FCanvas->Render();
            49     }
            50 };

                于是打開這個(gè)窗口,就變成了這樣:
                以后可以方便地為各種控件設(shè)計(jì)皮膚了。接下來是模板的測(cè)試,然后開始設(shè)計(jì)控件的架構(gòu)。
            posted on 2009-08-19 03:29 陳梓瀚(vczh) 閱讀(3541) 評(píng)論(5)  編輯 收藏 引用 所屬分類: 2D

            評(píng)論:
            # re: C++界面庫:Graphic Element Template實(shí)現(xiàn) 2009-08-19 07:21 | ABC
            很強(qiáng)大!  回復(fù)  更多評(píng)論
              
            # re: C++界面庫:Graphic Element Template實(shí)現(xiàn) 2009-08-20 02:26 | 空明流轉(zhuǎn)
            很冒煙!  回復(fù)  更多評(píng)論
              
            # re: C++界面庫:Graphic Element Template實(shí)現(xiàn) 2009-08-21 01:21 | 羅萊家紡
            世界的粉紅色的  回復(fù)  更多評(píng)論
              
            # re: C++界面庫:Graphic Element Template實(shí)現(xiàn)[未登錄] 2009-08-25 07:28 | 我要去桂林
            很強(qiáng)大  回復(fù)  更多評(píng)論
              
            # re: C++界面庫:Graphic Element Template實(shí)現(xiàn) 2009-09-25 00:27 | 阿賢
            呵呵, 這樣做界面很好玩  回復(fù)  更多評(píng)論
              
            久久99精品久久久久久9蜜桃| 东京热TOKYO综合久久精品| 久久伊人影视| 久久综合视频网站| 亚洲成人精品久久| 久久国产欧美日韩精品| 亚洲综合日韩久久成人AV| 色老头网站久久网| 国内精品久久久久影院一蜜桃| 久久av无码专区亚洲av桃花岛| 久久国产福利免费| 久久久久亚洲AV无码网站| 亚洲国产成人久久精品影视| 精品久久久久久久久免费影院| 久久青青草原综合伊人| 久久久亚洲欧洲日产国码aⅴ | 精品国产乱码久久久久久人妻| 无码伊人66久久大杳蕉网站谷歌| 久久久中文字幕| 精品久久777| 久久久久亚洲AV无码网站| 99久久综合国产精品二区| 日本久久久久久中文字幕| 久久精品国产一区| 久久精品国产99久久香蕉| 内射无码专区久久亚洲| 97久久国产亚洲精品超碰热| 美女久久久久久| 狠狠色狠狠色综合久久| 漂亮人妻被黑人久久精品| 无码伊人66久久大杳蕉网站谷歌| 亚洲欧美日韩久久精品第一区| 人人狠狠综合久久亚洲高清| 国内精品伊人久久久久AV影院| 中文精品久久久久人妻不卡| 久久精品成人免费看| 香蕉aa三级久久毛片| 国色天香久久久久久久小说 | 日韩亚洲欧美久久久www综合网| 99久久免费国产精品热| 久久青青草原精品国产不卡|