锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲AV乱码久久精品蜜桃,久久亚洲欧美日本精品,青青青国产精品国产精品久久久久 http://www.shnenglu.com/gaimor/category/16278.htmlC/C++楂樼駭宸ョ▼甯? Android楂樼駭杞歡宸ョ▼甯? IT闆嗘垚宸ョ▼甯? 闊抽宸ョ▼甯? 鐔熸?zhèn)塩,c++,java,c#,py,js,asp絳夊縐嶈璦 紼嬪簭鐚?/description>zh-cnWed, 24 Feb 2016 14:53:11 GMTWed, 24 Feb 2016 14:53:11 GMT60浣跨敤Opengl鏄劇ず瀵屾枃鏈?/title><link>http://www.shnenglu.com/gaimor/archive/2016/02/22/212861.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 22 Feb 2016 09:46:00 GMT</pubDate><guid>http://www.shnenglu.com/gaimor/archive/2016/02/22/212861.html</guid><wfw:comment>http://www.shnenglu.com/gaimor/comments/212861.html</wfw:comment><comments>http://www.shnenglu.com/gaimor/archive/2016/02/22/212861.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gaimor/comments/commentRss/212861.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gaimor/services/trackbacks/212861.html</trackback:ping><description><![CDATA[緇橞GE鍔犱笂浜?jiǎn)瀵屾枃鏈槃·哄姛鑳?br />鐩稿叧浠g爜濡備笅:<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">void</span><span style="color: #000000; "> GLTextRenderer::render(</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> Color</span><span style="color: #000000; ">&</span><span style="color: #000000; "> color,</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> String</span><span style="color: #000000; ">&</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">,</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> FloatRect</span><span style="color: #000000; ">&</span><span style="color: #000000; "> area,</span><span style="color: #0000FF; ">bool</span><span style="color: #000000; "> isMultiLine,<br />        Horizontal hAlignment,Vertical vAlignment,</span><span style="color: #0000FF; ">bool</span><span style="color: #000000; "> rich)<br />{<br />    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(typeFace_ </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; "> </span><span style="color: #000000; ">&&</span><span style="color: #000000; "> </span><span style="color: #000000; ">!</span><span style="color: #000000; ">rich)<br />    {<br />        typeFace_</span><span style="color: #000000; ">-></span><span style="color: #000000; ">setColor(color);<br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(isMultiLine)<br />        {<br />            renderMultiline(color,</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">,area,hAlignment);<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />        {<br />            Vector2f position(typeFace_</span><span style="color: #000000; ">-></span><span style="color: #000000; ">penX(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">,area,hAlignment),baseLineY(area,vAlignment));<br />            typeFace_</span><span style="color: #000000; ">-></span><span style="color: #000000; ">render(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">,position);<br />        }<br />    }<br />    </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(typeFace_)<br />    {<br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">isMultiLine)<br />        {<br />            auto cmdlist </span><span style="color: #000000; ">=</span><span style="color: #000000; "> parseString(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">);<br />            Vector2f position(typeFace_</span><span style="color: #000000; ">-></span><span style="color: #000000; ">penX(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; ">,area,hAlignment),baseLineY(area,vAlignment));<br />            typeFace_</span><span style="color: #000000; ">-></span><span style="color: #000000; ">render(String(),position,cmdlist);<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />        {<br />            auto cmdlist </span><span style="color: #000000; ">=</span><span style="color: #000000; "> parseString(</span><span style="color: #0000FF; ">string</span><span style="color: #000000;">);<br />            renderMultiline(color,cmdlist,area,hAlignment);<br />        }<br />    }<br />}</span></div>榪欓噷鐨刾arseString鐢ㄤ簬瑙f瀽綾諱技html鐨勯棶棰?br />鍑芥暟瀹炵幇濡備笅:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">std::list</span><span style="color: #000000; "><</span><span style="color: #000000; ">textRenderCmdUnit</span><span style="color: #000000; ">></span><span style="color: #000000; "> TextRenderer::parseString(</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> String</span><span style="color: #000000; ">&</span><span style="color: #000000; "> content)<br />{<br />    String text(content);<br />    std::list</span><span style="color: #000000; "><</span><span style="color: #000000; ">textRenderCmdUnit</span><span style="color: #000000; ">></span><span style="color: #000000; "> cmdList;<br /><br />    String current;<br />    auto list </span><span style="color: #000000; ">=</span><span style="color: #000000; "> text.split(</span><span style="color: #000000; ">'</span><span style="color: #000000; "><</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />    </span><span style="color: #0000FF; ">for</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> i</span><span style="color: #000000; ">=</span><span style="color: #000000; ">0</span><span style="color: #000000; ">;i</span><span style="color: #000000; "><</span><span style="color: #000000; ">list.size();i</span><span style="color: #000000; ">++</span><span style="color: #000000; ">)<br />    {<br />        current </span><span style="color: #000000; ">=</span><span style="color: #000000; "> list[i];<br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(current.startWith(L</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/></span><span style="color: #000000; ">"</span><span style="color: #000000; ">))<br />        {<br />            textRenderCmdUnit unit;<br />            unit.undo </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />            cmdList.push_back(unit);<br /><br />            String remain </span><span style="color: #000000; ">=</span><span style="color: #000000; "> current.substr(</span><span style="color: #000000; ">2</span><span style="color: #000000; ">);<br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">remain.empty())<br />            {<br />                unit.text </span><span style="color: #000000; ">=</span><span style="color: #000000; "> remain;<br />                unit.undo </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />                cmdList.push_back(unit);<br />            }<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(current.find(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">></span><span style="color: #000000; ">'</span><span style="color: #000000; ">) </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> String::InvalidPos)<br />        {<br />            textRenderCmdUnit unit;<br />            unit.tag </span><span style="color: #000000; ">=</span><span style="color: #000000; "> current.substr(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,current.find(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">></span><span style="color: #000000; ">'</span><span style="color: #000000; ">));<br />            unit.undo </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />            cmdList.push_back(unit);<br /><br />            int32_t find </span><span style="color: #000000; ">=</span><span style="color: #000000; "> current.find(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">></span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(find </span><span style="color: #000000; "><</span><span style="color: #000000; "> current.size()</span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)<br />            {<br />                unit.tag.clear();<br />                unit.text </span><span style="color: #000000; ">=</span><span style="color: #000000; "> current.substr(find</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">);<br />                cmdList.push_back(unit);<br />            }<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />        {<br />            textRenderCmdUnit unit;<br />            unit.text </span><span style="color: #000000; ">=</span><span style="color: #000000; "> current;<br />            unit.undo </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />            cmdList.push_back(unit);<br />        }<br />    }<br /><br />    </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> cmdList;<br />}<br /></span></div>浠ヤ笅鐢ㄤ簬娓叉煋瀵屾枃鏈?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; "><br /></span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> TypeFace::render(</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> FloatRect</span><span style="color: #000000; ">&</span><span style="color: #000000; "> area,</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> std::list</span><span style="color: #000000; "><</span><span style="color: #000000; ">textRenderCmdUnit</span><span style="color: #000000; ">>&</span><span style="color: #000000; "> queue,Horizontal hAlignment,</span><span style="color: #0000FF; ">float</span><span style="color: #000000; "> vpos)<br />{<br />    </span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">float</span><span style="color: #000000; "> availableWidth </span><span style="color: #000000; ">=</span><span style="color: #000000; "> area.width_ </span><span style="color: #000000; ">-</span><span style="color: #000000; "> </span><span style="color: #000000; ">2.0f</span><span style="color: #000000; ">;<br /><br />    textRenderCmdUnit unit;<br /><br />    String line,lineRemain;<br /><br />    String tag;<br />    std::queue</span><span style="color: #000000; "><</span><span style="color: #000000; ">String</span><span style="color: #000000; ">></span><span style="color: #000000; "> cmdStack;<br /><br />    </span><span style="color: #0000FF; ">float</span><span style="color: #000000; "> y </span><span style="color: #000000; ">=</span><span style="color: #000000; "> vpos;<br />    </span><span style="color: #0000FF; ">float</span><span style="color: #000000; "> x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> penX(String(),area,hAlignment);<br /><br />    auto itr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> queue.begin();<br />    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(itr </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> queue.end())<br />    {<br />        unit </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">itr;<br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(unit.undo)<br />        {<br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">cmdStack.empty())<br />            {<br />                tag </span><span style="color: #000000; ">=</span><span style="color: #000000; "> cmdStack.front();<br />                cmdStack.pop();<br /><br />                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">bold</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                    bold_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />                </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">italic</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                    italic_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />                </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">underline</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                    underline_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />                </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />                    applyColor(tag);<br />            }<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">unit.tag.empty())<br />        {<br />            tag </span><span style="color: #000000; ">=</span><span style="color: #000000; "> unit.tag;<br />            cmdStack.push(tag);<br /><br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">bold</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                bold_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />            </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">italic</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                italic_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />            </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">underline</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                underline_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />            </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />                applyColor(tag);<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />        {<br />            line </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> unit.text;<br /><br />            </span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">)<br />            {<br />                size_t pos </span><span style="color: #000000; ">=</span><span style="color: #000000; "> hitCharacterIndex(line,availableWidth</span><span style="color: #000000; ">-</span><span style="color: #000000; ">x);<br />                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(pos </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">)<br />                {<br />                    x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> penX(String(),area,hAlignment);<br />                    y </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> lineHeight();<br />                    </span><span style="color: #0000FF; ">continue</span><span style="color: #000000; ">;<br />                }<br /><br />                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(pos </span><span style="color: #000000; ">==</span><span style="color: #000000; "> String::InvalidPos)<br />                    pos </span><span style="color: #000000; ">=</span><span style="color: #000000; "> line.size();<br /><br />                String current </span><span style="color: #000000; ">=</span><span style="color: #000000; "> line.substr(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,pos);<br />                lineRemain </span><span style="color: #000000; ">=</span><span style="color: #000000; "> line.substr(pos);<br />                line </span><span style="color: #000000; ">=</span><span style="color: #000000; "> current;<br /><br />                auto linefeed </span><span style="color: #000000; ">=</span><span style="color: #000000; "> line.</span><span style="color: #0000FF; ">get</span><span style="color: #000000; ">().find_first_of(</span><span style="color: #000000; ">'</span><span style="color: #000000; ">\n</span><span style="color: #000000; ">'</span><span style="color: #000000; ">);<br />                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(linefeed </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> std::basic_string</span><span style="color: #000000; "><</span><span style="color: #000000; ">uint32_t</span><span style="color: #000000; ">></span><span style="color: #000000; ">::npos)<br />                {<br />                    line </span><span style="color: #000000; ">=</span><span style="color: #000000; "> line.substr(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">,linefeed);<br />                    lineRemain </span><span style="color: #000000; ">=</span><span style="color: #000000; "> line.substr(linefeed</span><span style="color: #000000; ">+</span><span style="color: #000000; ">1</span><span style="color: #000000; ">) </span><span style="color: #000000; ">+</span><span style="color: #000000; "> lineRemain;<br />                }<br /><br />                render(line,Vector2f(x,y),std::list</span><span style="color: #000000; "><</span><span style="color: #000000; ">textRenderCmdUnit</span><span style="color: #000000; ">></span><span style="color: #000000; ">());<br />                x </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> width(line);<br /><br />                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(linefeed </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> String::InvalidPos)<br />                {<br />                    x </span><span style="color: #000000; ">=</span><span style="color: #000000; "> penX(String(),area,hAlignment);<br />                    y </span><span style="color: #000000; ">+=</span><span style="color: #000000; "> lineHeight();<br />                }<br />                line </span><span style="color: #000000; ">=</span><span style="color: #000000; "> lineRemain;<br /><br />                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(lineRemain.empty())<br />                    </span><span style="color: #0000FF; ">break</span><span style="color: #000000; ">;<br />            }<br />        }<br />        itr </span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />    }<br />}</span></div>浠ヤ笅娓叉煋鍗曡壊鏂囨湰<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">void</span><span style="color: #000000; "> TypeFace::renderGlyphs(</span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> std::list</span><span style="color: #000000; "><</span><span style="color: #000000; ">textRenderCmdUnit</span><span style="color: #000000; ">>&</span><span style="color: #000000; "> cmd)<br />{<br />    Vector2f position(</span><span style="color: #000000; ">0.0f</span><span style="color: #000000; ">,</span><span style="color: #000000; ">0.0f</span><span style="color: #000000; ">);<br />    size_t leftChar </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br /><br />    textRenderCmdUnit unit;<br /><br />    String tag;<br />    std::queue</span><span style="color: #000000; "><</span><span style="color: #000000; ">String</span><span style="color: #000000; ">></span><span style="color: #000000; "> cmdStack;<br /><br />    std::list</span><span style="color: #000000; "><</span><span style="color: #000000; ">textRenderCmdUnit</span><span style="color: #000000; ">></span><span style="color: #000000; ">::const_iterator itr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> cmd.begin();<br />    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; ">(itr </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> cmd.end())<br />    {<br />        unit </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">*</span><span style="color: #000000; ">itr;<br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(unit.tag.empty() </span><span style="color: #000000; ">&&</span><span style="color: #000000; "> </span><span style="color: #000000; ">!</span><span style="color: #000000; ">unit.undo)<br />        {<br />            position </span><span style="color: #000000; ">=</span><span style="color: #000000; "> renderGlyphs(unit.text,position);<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">unit.tag.empty())<br />        {<br />            tag </span><span style="color: #000000; ">=</span><span style="color: #000000; "> unit.tag;<br />            cmdStack.push(tag);<br /><br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">bold</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                bold_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />            </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">italic</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                italic_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />            </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">underline</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                underline_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />            </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />                applyColor(tag);<br />        }<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(unit.undo)<br />        {<br />            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(</span><span style="color: #000000; ">!</span><span style="color: #000000; ">cmdStack.empty())<br />            {<br />                tag </span><span style="color: #000000; ">=</span><span style="color: #000000; "> cmdStack.front();<br />                cmdStack.pop();<br /><br />                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">bold</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                    bold_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />                </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">italic</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                    italic_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />                </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">(tag </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">"</span><span style="color: #000000; ">underline</span><span style="color: #000000; ">"</span><span style="color: #000000; ">)<br />                    underline_ </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />                </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />                    applyColor(tag);<br />            }<br />        }<br /><br />        itr </span><span style="color: #000000; ">++</span><span style="color: #000000; ">;<br />    }<br />}</span></div>鍙互鐪嬪嚭 鏀寔鐨勬枃鏈牸寮忎負(fù)<Tag>Text</><br />涓涓緥瀛愭槸:<br /><div><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<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; ">Blue</span><span style="color: #000000; ">></span><span style="color: #000000; ">榪欐浠g爜涓昏嫻嬭瘯BGE鐨勫瘜鏂囨湰鏄劇ず鍔熻兘\n</span><span style="color: #000000; "></</span><span style="color: #000000; ">Blue</span><span style="color: #000000; ">><</span><span style="color: #000000; ">Red</span><span style="color: #000000; ">></span><span style="color: #000000; ">闇瑕佹寚鍑虹殑鏄綋鍓嶅彧瑕佽兘鏀寔澶氳鏄劇ず鍜屽棰滆壊鏄劇ず鍔熻兘鍗沖彲(涓嶈冭檻涓嬪垝綰挎枩浣撲互鍙?qiáng)鍔牼_楁樉紺?銆?/span><span style="color: #000000; "></</span><span style="color: #000000; ">Red</span><span style="color: #000000; ">><</span><span style="color: #000000; ">White</span><span style="color: #000000; ">></span><span style="color: #000000; ">榪欏彞璇濆皢琚樉紺轟負(fù)鐧借壊</span><span style="color: #000000; "></><</span><span style="color: #000000; ">Blue</span><span style="color: #000000; ">></span><span style="color: #000000; ">榪欏彞璇濆簲璇ヨ钃濊壊瀛椾綋</span><span style="color: #000000; "></</span><span style="color: #000000; ">Blue</span><span style="color: #000000; ">><</span><span style="color: #000000; ">Green</span><span style="color: #000000; ">></span><span style="color: #000000; ">緇胯壊瀛椾綋</span><span style="color: #000000; "></><</span><span style="color: #000000; ">Cyan</span><span style="color: #000000; ">></span><span style="color: #000000; ">Cyan鑹?/span><span style="color: #000000; "></></span><span style="color: #000000; ">"</span><span style="color: #000000; ">;</span></div></div>鏈緇堟樉紺哄涓?<br /><img src="http://www.shnenglu.com/images/cppblog_com/gaimor/richtext.png" alt="" height="272" border="0" width="656" /><img src ="http://www.shnenglu.com/gaimor/aggbug/212861.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gaimor/" target="_blank">ccsdu2009</a> 2016-02-22 17:46 <a href="http://www.shnenglu.com/gaimor/archive/2016/02/22/212861.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍙戝竷涓涓熀浜嶰PENGL鐨凣UI搴?/title><link>http://www.shnenglu.com/gaimor/archive/2016/01/22/212715.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 22 Jan 2016 07:41:00 GMT</pubDate><guid>http://www.shnenglu.com/gaimor/archive/2016/01/22/212715.html</guid><wfw:comment>http://www.shnenglu.com/gaimor/comments/212715.html</wfw:comment><comments>http://www.shnenglu.com/gaimor/archive/2016/01/22/212715.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.shnenglu.com/gaimor/comments/commentRss/212715.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gaimor/services/trackbacks/212715.html</trackback:ping><description><![CDATA[綆楁槸鍩烘湰瀹屾垚浜?jiǎn)锛屽厛涓婁竴涓埅鍥?br /><img src="http://www.shnenglu.com/images/cppblog_com/gaimor/bge.PNG" width="656" height="401" alt="" /><br /><br />鍙互璇碐UI鎵闇瑕佺殑褰撳墠鍩烘湰閮芥槸瀹炵幇浜?br /><br />鍐嶄笂涓涓嬌鐢ㄤ緥瀛?<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#include <BGE/All><br /><br /><span style="color: #0000FF; ">using</span> <span style="color: #0000FF; ">namespace</span> bge;<br /><br /><span style="color: #0000FF; ">int</span> main(<span style="color: #0000FF; ">int</span> argc, <span style="color: #0000FF; ">char</span>* argv[])<br />{<br />    FileSystem::instance().initial(argv[0]);<br />    FileSystem::instance().setResourcePackage("data.zip");<br />    WindowManager::instance().initialize("simkai.ttf",<span style="color: #0000FF; ">true</span>);<br /><br />    Device* device = Device::create();<br />    device->initial();<br />    device->createWindow(640,480,bge::String("BGE Window"));<br /><br />    WindowManager::instance().propertyScheme()->load(":skin1.xml");<br /><br />    Window* window = WindowManager::instance().createWindow(":grid-layout-window.xml");<br />    WindowManager::instance().addWindow(window);<br /><br />    <span style="color: #0000FF; ">while</span>(device->isRunning())<br />    {<br />        device->preRender();<br />        WindowManager::instance().update();<br />        device->swapBuffers();<br />        device->pollEvents();<br />    }<br /><br />    WindowManager::instance().terminate();<br />    device->closeWindow();<br />    device->terminate();<br />    device->deleteLater();<br />    <span style="color: #0000FF; ">return</span> 0;<br />}</div><br />涓漢鎰熻鍐欑殑榪樻槸姣旇緝娓呮櫚錛屾病浠涔堥渶瑕佺壒鍒鏄庣殑<br />浣跨敤鐨勫紑婧愬簱鏈塴ibpng,glfw,freetype,sigslot,physfs<br />涓嶈繃浠g爜鏈夌偣澶э紝鏈夊叴瓚g殑鍙互鐣欎釜閭<br /><br /><img src ="http://www.shnenglu.com/gaimor/aggbug/212715.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gaimor/" target="_blank">ccsdu2009</a> 2016-01-22 15:41 <a href="http://www.shnenglu.com/gaimor/archive/2016/01/22/212715.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁捐妯″紡-闂ㄩ潰妯″紡http://www.shnenglu.com/gaimor/archive/2011/05/08/145942.htmlccsdu2009ccsdu2009Sun, 08 May 2011 03:53:00 GMThttp://www.shnenglu.com/gaimor/archive/2011/05/08/145942.htmlhttp://www.shnenglu.com/gaimor/comments/145942.htmlhttp://www.shnenglu.com/gaimor/archive/2011/05/08/145942.html#Feedback3http://www.shnenglu.com/gaimor/comments/commentRss/145942.htmlhttp://www.shnenglu.com/gaimor/services/trackbacks/145942.html鍟ユ槸闂ㄩ潰妯″紡錛?br>鎸夌収鎴戠殑鐞嗚В灝辨槸:緇欎竴緋誨垪瀛愬璞℃垨鑰呯郴緇熸彁楂樹(shù)竴涓粺涓鐨勬帴鍙?br>鍦ㄤ嬌鐢ㄨ繃紼嬩腑璇ユ帴鍙f妸瀹㈡埛绔彂閫佹潵鐨勮姹備紶閫掑埌鍚勪釜鍙兘鐨勫瓙緋葷粺涓幓銆?br>涓鍙ヨ瘽:闂ㄩ潰妯″紡鏄負(fù)浜?jiǎn)绠鍖栧鎴風(fēng)鎿嶄綔鑰屼駭鐢熺殑
涓涓畝鍗曠殑渚嬪瓙鏄?
涔嬪墠鎴戣鐪嬬數(shù)瑙嗭紝鍙渶瑕佹墦寮鐢?shù)瑙嗘満鍗冲?br>浣嗘槸鐜板湪鏈変簡(jiǎn)鏈洪《鐩掕繖涓笢瑗匡紝瑕佺湅鐢?shù)瑙嗛渶瑕?涓楠?鎵撳紑鐢?shù)瑙嗘満锛屾墦寮鏈洪《鐩掞紝鍙嶈岀箒鐞愪簡(jiǎn)銆?br>鍋氫釜姊︼紝濡傛灉涓澶╂垜鎯崇湅鐢?shù)瑙嗘垜鍙璇翠竴鍙?鎴戣鐪嬬數(shù)瑙嗭紝鐒跺悗鑷姩鎵撳紑鐢?shù)瑙嗘満鍜屾満椤剁洅銆傞偅璇ュ濂姐?br>
鍙互鐪嬪嚭錛屽湪瀹為檯寮鍙戣繃紼嬩腑錛屽浜庨偅浜涙病鏈夊榪囪璁℃ā寮忔淮娣紝浠栦滑涔熷彲鑳戒嬌鐢ㄨ繃璇ユā寮忥紝鍙笉榪囦笉鐭ラ亾鍚嶅瓧緗簡(jiǎn)

闂ㄩ潰妯″紡鐨勪竴涓緥瀛?
寰堢畝鍗曟淮:

class A;
class B;
class C;
class Op
{   
   A
* a;
   B
* b;
   C
* c;
   
void Call()
   {
      a
->Call();
      b
->Call();
      c
->Call(); 
   } 
}

娉ㄦ剰榪欓噷A,B,C涓嶅叿鏈夊叡鍚屽熀綾?br>
涓嶇浠涔堟ā寮忥紝閮芥槸涓轟簡(jiǎn)搴旂敤鏈嶅姟鐨勶紝濡傛灉浣嗘槸灝嗗鏉傚寲錛岄珮娣卞寲錛岄偅鏄笉鍙彇鐨勩傛兂鎯沖綋鏃朵拱浜?jiǎn)璁捐妯″紡涓涔︼紝鐪嬬殑紼閲岀硦娑傜殑銆?br>
PS錛氶棬闈㈡ā寮?綆鍖栧鎴風(fēng)鎿嶄綔(緇熶竴鍖呰)




ccsdu2009 2011-05-08 11:53 鍙戣〃璇勮
]]>
GUI搴撳垎鍧?/title><link>http://www.shnenglu.com/gaimor/archive/2011/05/06/145856.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Fri, 06 May 2011 14:44:00 GMT</pubDate><guid>http://www.shnenglu.com/gaimor/archive/2011/05/06/145856.html</guid><wfw:comment>http://www.shnenglu.com/gaimor/comments/145856.html</wfw:comment><comments>http://www.shnenglu.com/gaimor/archive/2011/05/06/145856.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/gaimor/comments/commentRss/145856.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gaimor/services/trackbacks/145856.html</trackback:ping><description><![CDATA[鍡?nbsp;GUI搴撳簲璇ュ垎涓哄嚑涓ぇ鐨勬ā鍧楀憿? :)鎴戞兂<br><br>榪欐鐨凣UI搴撴垜浼?xì)閲囩敤绫讳技GUICHAN鐨勬柟寮忥紝鍏蜂綋鐨凣UI騫朵笉渚濊禆浜庣壒瀹氱殑鍥懼艦鎺ュ彛錛岃屾槸閲囧彇鎻掍歡鐨勬柟寮忓姩鎬佸姞杞斤紝榪欐牱鏈夊姪浜庢彁楂樺叾浣跨敤鐨勫箍搴?br>搴旇鍖呭惈涓涓狦UIRender<br><br>鍙﹀GUI搴撴秹鍙?qiáng)闈㈡瘮杈凃q匡紝闇瑕佹湁澶ч噺闄勫姞鐨勬暟鎹粨鏋勬瘮濡俋ML錛屽浘褰㈠鐞嗭紝鍚戦噺錛屾彃浠訛紝鍩烘湰瀵硅薄錛屾棩蹇楃瓑銆傛垜浠簲璇ュ啀鍔犱竴涓緟鍔╁簱<br>浜庢槸鏈変竴涓彨鍋歎til鐨勪笢瑗?br><br>鍏舵鎴戜滑涓昏鐨凣UI搴撶被<br>榪欎釜鏄牳蹇?br>鎴戞殏鏃剁粰浠栬搗涓悕瀛楀彨coregui鍚?br>榪欎釜鏄繖涓狦Ui鐨勬牳蹇?br>鍏跺姛鑳介櫎浜?jiǎn)涓鑸殑GUI鎺т歡瀵硅薄涔嬪悗榪樺簲璇ユ湁鎺т歡宸ュ巶錛屾帶浠舵睜(綆$悊鍣?錛屾帶浠舵暟鎹覆琛屽寲錛屾帶浠跺竷灞錛屾帶浠剁紪杈戯紝鎺т歡鍔ㄦ佸姞杞斤紝鑴氭湰澶勭悊絳夊姛鑳斤紙鎯蟲(chóng)兂鍔熻兘榪樻瘮杈冨-涓嶈繃鎬繪瘮涔嬪墠鍋氱殑娓告垙寮曟搸閲忚灝忓緢澶氾級(jí)<br><br>鍒嗗潡灝辮繖涔堝嚑涓簡(jiǎn)<br><br>鍦ㄥ紑鍙戣繃紼嬩腑錛屾垜浼?xì)涓涓竴涓狦UI瀵硅薄閮借創(chuàng)涓婃潵錛岀劧鍚庤鏄庝負(fù)浠涔堣榪欐牱鍋氾紝騫墮檮涓婂彲鑳藉搴旂殑璁捐妯″紡錛堣媧誨媧葷敤(鈯檝鈯??錛?br><br>PS:鍏跺疄涓涓瘮杈冨ソ鐨勫姙娉曟槸鍊熷姪浜嶶ML錛屽彲鏄垜鐜板湪蹇樹(shù)簡(jiǎn)榪欏嚑涓瓧姣嶅浣曞啓錛屾湁絀哄瀛﹀惂 <img src ="http://www.shnenglu.com/gaimor/aggbug/145856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gaimor/" target="_blank">ccsdu2009</a> 2011-05-06 22:44 <a href="http://www.shnenglu.com/gaimor/archive/2011/05/06/145856.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>璁捐妯″紡-鍘熷瀷鏂規(guī)硶http://www.shnenglu.com/gaimor/archive/2011/05/06/145852.htmlccsdu2009ccsdu2009Fri, 06 May 2011 14:22:00 GMThttp://www.shnenglu.com/gaimor/archive/2011/05/06/145852.htmlhttp://www.shnenglu.com/gaimor/comments/145852.htmlhttp://www.shnenglu.com/gaimor/archive/2011/05/06/145852.html#Feedback0http://www.shnenglu.com/gaimor/comments/commentRss/145852.htmlhttp://www.shnenglu.com/gaimor/services/trackbacks/145852.html涓鑸吀鍨嬬殑渚嬪瓙鏄粏鑳?yōu)鍒嗚鍜屽瓩鎮(zhèn)熃I哄彉鎹㈠嚭N鐨勫皬鐚村瓙
涓嶈繃鎴戣繖閲屼婦涓涓湪GUI璁捐榪囩▼鐨勪緥瀛?br>
鍋囧涓涓潰鏉夸笂鐨勫悓璐ㄦ寜閽紝浠栦滑浠呮枃鏈笉鍚岋紝浠h〃鐨勯昏緫涓嶅悓錛屽叾浠栦俊鎭槸瀹屽叏涓鑷寸殑錛屾瘮濡傜毊鑲わ紝杈規(guī)錛屽ぇ灝忕瓑
鎸夌収涓鑸柟娉曞彲鑳戒細(xì)榪欐牱鏋勯犻潰鏉?br>
Button* btn1 = new Button();
btn1
->SetSize(..);
btn1
->SetBorder(..);
btn1
->SetListener(..);
btn1
->SetVisible(true);
btn1
->SetParent(panel);
btn1
->SetColor()
Button
* btn2 =..
褰撶劧榪樻湁鍏朵粬鎸夐挳:)
 
鏄笉鏄緢鐑?
鍊熷姪鍘熷瀷妯″紡
鍙互澶уぇ鐨勭畝鍖?
姣斿:
Button *btn1 = new Button(panel);
Button 
*btn2= btn1->Clone();
Button 
*btn3= btn1->Clone();
Button 
*btn4= btn1->Clone();
鐒跺悗鍙璁劇疆鍚勪釜鎸夐挳瀵瑰簲鐨勬枃鏈嵆鍙?/span>
涓轟簡(jiǎn)浣跨敤鍘熷瀷鏂規(guī)硶鎴戜滑闇瑕佸仛鐨勪粎浠呮槸
緇欏璞″鍔燙lone鎺ュ彛鍜屽叾瀹炵幇鍗沖彲
姣斿:
class AbstractWidget
{
public:
     virtual AbstractWidget
* Clone() = 0
     
};

闇瑕佽鏄庣殑鏄師鍨嬩竴鑸嬌鐢ㄧ殑鏄祬鎷瘋礉

ccsdu2009 2011-05-06 22:22 鍙戣〃璇勮
]]>
璁捐妯″紡-宸ュ巶鏂規(guī)硶http://www.shnenglu.com/gaimor/archive/2011/05/05/145775.htmlccsdu2009ccsdu2009Thu, 05 May 2011 14:27:00 GMThttp://www.shnenglu.com/gaimor/archive/2011/05/05/145775.htmlhttp://www.shnenglu.com/gaimor/comments/145775.htmlhttp://www.shnenglu.com/gaimor/archive/2011/05/05/145775.html#Feedback0http://www.shnenglu.com/gaimor/comments/commentRss/145775.htmlhttp://www.shnenglu.com/gaimor/services/trackbacks/145775.html-綆鍗曞伐鍘?http://www.shnenglu.com/gaimor/archive/2011/05/02/145498.html
綆鍗曞伐鍘傛槸鏍規(guī)嵁浼犲叆瑕佹眰鍐沖畾鐢熶駭閭g被浜у搧,鍏跺伐鍘傚彧鏈変竴涓?br>鍦ㄧ畝鍗曞伐鍘傚熀紜涔嬩笂,濡傛灉涓涓伐鍘傚搴斾竴涓駭鍝佸垯褰㈡垚浜?jiǎn)宸ュ巶鏂规?br>
interface Product
{
    
public void Call();
};

public class Product1 implements Product
{
    
public void Call()
    {}
};

public class Product2 implements Product
{
    
public void Call()
    {}
};

interface ProductFactory
{
    
public Product GetProduct();
};

public class ProductFactory1 implements ProductFactory
{
    
public Product GetProduct()
    {
        
return new Product1();
    }
}

public class ProductFactory2 implements ProductFactory
{
    
public Product GetProduct()
    {
        
return new Product2();
    }
}

榪欐牱浣跨敤
ProductFactory factory1 
= new ProductFactory1();

Product p1 
= factory1.GetProduct();
ProductFactory factory2 
= new ProductFactory2();

Product p2 
= factory2.GetProduct();


鍙互鐪嬪嚭宸ュ巶鏂規(guī)硶涓伐鍘傚拰浜у搧鎬繪槸涓涓瀵瑰簲鐨?br>涓涓伐鍘傚彧鑳界敓浜т竴涓駭鍝?br>寰堟樉鐒跺伐鍘傛柟娉曟渶澶х殑寮婄灝卞湪榪欓噷.

浣跨敤鐨勫満鍚?涓涓璞″笇鏈涚敱瀛愬璞℃潵鎸囧畾瀹冩墍鍒涘緩鐨勫璞℃椂,鍙互浣跨敤宸ュ巶鏂規(guī)硶

PS:緋葷粺閭d釜鎬葷粨涓嬭璁℃ā寮?

ccsdu2009 2011-05-05 22:27 鍙戣〃璇勮
]]>
璁捐妯″瀷緋誨垪-綆鍗曞伐鍘?/title><link>http://www.shnenglu.com/gaimor/archive/2011/05/02/145498.html</link><dc:creator>ccsdu2009</dc:creator><author>ccsdu2009</author><pubDate>Mon, 02 May 2011 08:57:00 GMT</pubDate><guid>http://www.shnenglu.com/gaimor/archive/2011/05/02/145498.html</guid><wfw:comment>http://www.shnenglu.com/gaimor/comments/145498.html</wfw:comment><comments>http://www.shnenglu.com/gaimor/archive/2011/05/02/145498.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/gaimor/comments/commentRss/145498.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/gaimor/services/trackbacks/145498.html</trackback:ping><description><![CDATA[榪欐鏃墮棿鍦ㄥ涔?fàn)Android錛屼篃瑕佸鐐筳av鏂歸潰鐨勭紪紼嬬煡璇?br>涔樼潃榪欎釜鏈轟細(xì)錛屼亢灝辨葷粨涓嬪榪囧拰浣跨敤榪囩殑璁捐妯″紡錛屽茍浣跨敤java鍐欎笅<br><br>鍏堣綆鍗曞伐鍘?br>綆鍗曞伐鍘傚睘浜庡伐鍘傛ā寮忕殑涓縐嶏紝涓嶈繃浼間箮涓嶅湪GOF妯″紡涔嬪垪.<br>涓鍙ヨ瘽鎻忚堪:綆鍗曞伐鍘傚氨鏄牴鎹粰瀹氳姹傜敓鎴愮粰瀹氬璞?br>綆鍗曠殑java鐗堟湰浠g爜濡備笅:<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">interface</span><span style="COLOR: #000000"> Product<br>{<br>    </span><span style="COLOR: #0000ff">abstract</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Call();<br>};<br><br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Pen </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> Product<br>{<br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Call()<br>    {<br>        <br>    }<br>};<br><br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Book </span><span style="COLOR: #0000ff">implements</span><span style="COLOR: #000000"> Product<br>{<br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000"> Call()<br>    {<br>        <br>    }<br>};<br><br><br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> clas Factory<br>{<br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> Product CreateProducrt(String name)<br>    {<br>        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(name.equals(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Pen</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))<br>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> Pen.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">.newInstance();<br>        </span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(name.equals(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Book</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">))<br>            </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> Book.</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">.newInstance();<br>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;<br>    }<br>};<br><br><br><br></span></div> <br>綆鍗曞伐鍘傚氨鏄牴鎹緭鍏ユ爣絳捐繑鍥炵粰瀹氱殑瀵硅薄瀹炰緥<br><br>寰堟樉鐒?dòng)灱尳巰鍗曞伐鍘傜殑涓昏緙洪櫡灝卞湪浜?濡傛灉闇瑕佸鍔犱竴涓柊鐨勪駭鍝侀偅灝遍渶瑕佷慨鏀瑰叾浜у搧鐢熸垚鍑芥暟<br><br>鍙﹀錛屽鏋滄妸宸ュ巶鍜屼駭鍝佸璞″悎浜屼負(fù)涓灝卞彉鎴愪簡(jiǎn)濡備笅鐨勫艦寮?<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> Object<br>{<br>    </span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000"> </span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000"> ObjectCreateObject(String name);<br>    other function. <br>};</span></div> 榪欑被浼間簬MFC涓瑿Object<br><br>綆鍗曞伐鍘傜殑涓涓嬌鐢ㄤ緥瀛愬涓?涔嬪墠鎴戝啓鐨凣UI):<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> WidgetFactory<br>{<br></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br>    Widget</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> CreateWidgetByName(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> std::</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&</span><span style="COLOR: #000000"> name);      <br>};</span></div> 鍦ㄨ繖閲屽鏋滀紶鍏pin鍒欒繑鍥炰竴涓猲ew Spin,浼犲叆涓涓猄lider鍒欒繑鍥炰竴涓猲ew Slider瀵硅薄<br>濡傛灉鎴戝鍔犱竴涓柊鐨刉idget瀵硅薄錛屽垯闇瑕佹妸CreateWidgetByName鍑芥暟淇敼涓?褰撶劧鍙互浣跨敤Object::CreateObject(name)鍑芥暟,鍙槸榪斿洖鐨勫璞¢渶瑕佸仛綾誨瀷杞崲,鍘熷垯涓鑷?<br><br>涓嬬瘒璇磋鎶借薄宸ュ巶鍜屽伐鍘傛柟娉曞惂 <img src ="http://www.shnenglu.com/gaimor/aggbug/145498.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/gaimor/" target="_blank">ccsdu2009</a> 2011-05-02 16:57 <a href="http://www.shnenglu.com/gaimor/archive/2011/05/02/145498.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.okfupo.cn" target="_blank">久久99久久99精品免视看动漫</a>| <a href="http://www.z9432.cn" target="_blank">理论片午午伦夜理片久久</a>| <a href="http://www.vzxu.cn" target="_blank">亚洲精品午夜国产va久久</a>| <a href="http://www.west-data.cn" target="_blank">国产精品99久久久久久宅男</a>| <a href="http://www.cfgcurn.cn" target="_blank">狠狠久久亚洲欧美专区 </a>| <a href="http://www.dhxxw.cn" target="_blank">狠狠色丁香久久婷婷综合五月</a>| <a href="http://www.apcu.cn" target="_blank">久久人人爽爽爽人久久久</a>| <a href="http://www.ywxcj.cn" target="_blank">久久免费国产精品</a>| <a href="http://www.gcjszzbjb.cn" target="_blank">久久久精品人妻无码专区不卡</a>| <a href="http://www.thesmarterwaytofaster.cn" target="_blank">72种姿势欧美久久久久大黄蕉</a>| <a href="http://www.sfwan.cn" target="_blank">99久久国产综合精品麻豆</a>| <a href="http://www.517down.cn" target="_blank">久久精品人人做人人爽电影</a>| <a href="http://www.qhsy217.cn" target="_blank">亚洲成人精品久久</a>| <a href="http://www.jianfusi.cn" target="_blank">久久久久国产精品三级网</a>| <a href="http://www.mail-lists.cn" target="_blank">亚洲七七久久精品中文国产</a>| <a href="http://www.baicar.cn" target="_blank">思思久久好好热精品国产</a>| <a href="http://www.orionstaros.cn" target="_blank">老男人久久青草av高清</a>| <a href="http://www.gsm777.cn" target="_blank">久久影院综合精品</a>| <a href="http://www.vanblog.cn" target="_blank">国产精品热久久无码av</a>| <a href="http://www.lntyzx.com.cn" target="_blank">青青草原综合久久大伊人导航</a>| <a href="http://www.taobaomaiba.cn" target="_blank">久久经典免费视频</a>| <a href="http://www.shuangfengjixie.com.cn" target="_blank">久久久久久精品成人免费图片</a>| <a href="http://www.chenheling.cn" target="_blank">一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 </a>| <a href="http://www.my163.net.cn" target="_blank">久久99中文字幕久久</a>| <a href="http://www.huadamachine.com.cn" target="_blank">88久久精品无码一区二区毛片</a>| <a href="http://www.wwcx.com.cn" target="_blank">久久精品三级视频</a>| <a href="http://www.hasgw.cn" target="_blank">亚洲AV无码久久</a>| <a href="http://www.laqn.cn" target="_blank">91精品国产高清久久久久久91</a>| <a href="http://www.dachanzui.cn" target="_blank">免费一级欧美大片久久网</a>| <a href="http://www.rongchenjiaxiao.cn" target="_blank">久久久久久精品免费免费自慰 </a>| <a href="http://www.mashar.cn" target="_blank">久久亚洲日韩看片无码</a>| <a href="http://www.wdxxz.cn" target="_blank">2021少妇久久久久久久久久</a>| <a href="http://www.xx0759.cn" target="_blank">国产一区二区三精品久久久无广告</a>| <a href="http://www.zhengulao.cn" target="_blank">久久久网中文字幕</a>| <a href="http://www.f28771.cn" target="_blank">久久久免费精品re6</a>| <a href="http://www.haowan.ac.cn" target="_blank">久久国产三级无码一区二区</a>| <a href="http://www.uj60.cn" target="_blank">久久综合给合久久国产免费</a>| <a href="http://www.jqqingzhou.cn" target="_blank">日本精品久久久久影院日本</a>| <a href="http://www.banburi.cn" target="_blank">久久青青草原亚洲av无码app </a>| <a href="http://www.yylsax.cn" target="_blank">香蕉久久永久视频</a>| <a href="http://www.renliu123.cn" target="_blank">国产91色综合久久免费</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>