青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-341  評論-2670  文章-0  trackbacks-0
    GacUI終于把上一篇文章中提到的自動采用正則表達式進行高亮的Demo做出來了。這次實現的是C++ colorizer。而XML colorizer不僅需要正則表達式,還需要一個人工維護的狀態,這個等到下一個Demo再提及。先看圖



    在不需要人工維護狀態,僅通過正則表達式就可以著色的時候,編寫一個colorizer變得十分的簡單。這個Colorizer雖然不是一定非得通過繼承來實現,但是這個Demo還是使用了繼承。首先編寫一個類,繼承自GuiTextBoxRegexColorizer,然后在構造函數里面填寫下面的代碼:

class CppColorizer : public GuiTextBoxRegexColorizer
{
public:
    CppColorizer()
    {
        text::ColorEntry entry
=win7::Win7GetTextBoxTextColor();
        SetDefaultColor(entry);

        entry.normal.text
=Color(1280255);
        AddToken(L
"/d+(./d*)?([eE][+/-]?/d+)?", entry);

        entry.normal.text
=Color(1632121);
        AddToken(L
"\"([^\"]|\\\\/.)*\"", entry);

        entry.normal.text
=Color(01280);
        AddToken(L
"////[^\r\n]*", entry);
        AddToken(L
"///*(//|[*]*[^*//])*/*+//", entry);

        entry.normal.text
=Color(00255);
        AddToken(L
"#[a-zA-Z0-9_]*", entry);
        AddToken(CppKeywords, entry);
        
        AddToken(L
"[a-zA-Z0-9_]+", GetDefaultColor());

        Setup();
    }
};

    然后只需要把它綁定到文本框里面就可以了。在這個Demo里面,我們在下拉框的事件里面添加下面的代碼:

    void comboSelector_SelectedIndexChanged(GuiGraphicsComposition* sender, GuiEventArgs& arguments)
    {
        
switch(comboSelector->GetSelectedIndex())
        {
        
case 0:(略)
        
case 1:(略)
        
case 2:
            textBox
->SetColorizer(new CppColorizer);
            textBox
->SetText(
                L
"#include <iostream>\r\n"
                L
"using namespace std;\r\n"
                L
"\r\n"
                L
"int main()\r\n"
                L
"{\r\n"
                L
"\t//This is a comment\r\n"
                L
"\t/**This*is/another\r\n"
                L
"\tcomment**/\r\n"
                L
"\tcout<<\"Hello, world!\"<<endl;\r\n"
                L
"\treturn 0;\r\n"
                L
"}\r\n"
                );
            
break;
        
default:
            textBox
->SetColorizer(0);
        }
    }

    當然這樣是不完整的,因為CppColorizer里面還有一個CppKeywords的常量。這實際上是一個正則表達式,里面用“|”字符把所有C++的關鍵字連了起來。內容抄自MSDN的C++ Language Reference:

  1 const wchar_t* CppKeywords=
  2 L"__abstract|"
  3 L"__alignof|"
  4 L"__asm|"
  5 L"__assume|"
  6 L"__based|"
  7 L"__box|"
  8 L"__cdecl|"
  9 L"__declspec|"
 10 L"__delegate|"
 11 L"__event|"
 12 L"__except|"
 13 L"__fastcall|"
 14 L"__finally|"
 15 L"__forceinline|"
 16 L"__gc|"
 17 L"__hook|"
 18 L"__identifier|"
 19 L"__if_exists|"
 20 L"__if_not_exists|"
 21 L"__inline|"
 22 L"__int16|"
 23 L"__int32|"
 24 L"__int64|"
 25 L"__int8|"
 26 L"__interface|"
 27 L"__leave|"
 28 L"__m128d|"
 29 L"__m128|"
 30 L"__m128i|"
 31 L"__m64|"
 32 L"__multiple_inheritance|"
 33 L"__nogc|"
 34 L"__noop|"
 35 L"__pin|"
 36 L"__property|"
 37 L"__raise|"
 38 L"__sealed|"
 39 L"__single_inheritance|"
 40 L"__stdcall|"
 41 L"__super|"
 42 L"__try|"
 43 L"__except|"
 44 L"__finally|"
 45 L"__try_cast|"
 46 L"__unaligned|"
 47 L"__unhook|"
 48 L"__uuidof|"
 49 L"__value|"
 50 L"__virtual_inheritance|"
 51 L"__w64|"
 52 L"__wchar_t|"
 53 L"wchar_t|"
 54 L"abstract|"
 55 L"array|"
 56 L"bool|"
 57 L"break|"
 58 L"case|"
 59 L"catch|"
 60 L"char|"
 61 L"class|"
 62 L"const_cast|"
 63 L"const|"
 64 L"continue|"
 65 L"decltype|"
 66 L"default|"
 67 L"delegate|"
 68 L"delete|"
 69 L"do|"
 70 L"double|"
 71 L"dynamic_cast|"
 72 L"else|"
 73 L"enum|"
 74 L"event|"
 75 L"explicit|"
 76 L"extern|"
 77 L"false|"
 78 L"finally|"
 79 L"float|"
 80 L"for|"
 81 L"friend|"
 82 L"gcnew|"
 83 L"generic|"
 84 L"goto|"
 85 L"if|"
 86 L"initonly|"
 87 L"inline|"
 88 L"int|"
 89 L"interface|"
 90 L"interior_ptr|"
 91 L"literal|"
 92 L"long|"
 93 L"mutable|"
 94 L"namespace|"
 95 L"new|"
 96 L"new|"
 97 L"nullptr|"
 98 L"operator|"
 99 L"private|"
100 L"property|"
101 L"property|"
102 L"protected|"
103 L"public|"
104 L"register|"
105 L"reinterpret_cast|"
106 L"return|"
107 L"sealed|"
108 L"short|"
109 L"signed|"
110 L"sizeof|"
111 L"static_assert|"
112 L"static_cast|"
113 L"static|"
114 L"struct|"
115 L"switch|"
116 L"template|"
117 L"this|"
118 L"__thiscall|"
119 L"throw|"
120 L"true|"
121 L"try|"
122 L"typedef|"
123 L"typeid|"
124 L"typeid|"
125 L"typename|"
126 L"union|"
127 L"unsigned|"
128 L"using|"
129 L"virtual|"
130 L"void|"
131 L"volatile|"
132 L"while";

    使用GacUI為文本框著色已經變得如此簡單。
posted on 2012-05-17 09:03 陳梓瀚(vczh) 閱讀(2207) 評論(2)  編輯 收藏 引用 所屬分類: GacUI

評論:
# re: GacUI Demo:文本框高亮(二) 2012-05-17 20:08 | 蔡東赟
nice 以后你這個 專門做編輯器ui 算了

hoho  回復  更多評論
  
# re: GacUI Demo:文本框高亮(二) 2012-05-17 23:46 | 邱震鈺(zblc)
mark~

  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            99精品欧美一区二区三区综合在线| 红桃视频成人| 日韩视频一区二区| 国产在线观看91精品一区| 国产综合精品一区| 日韩视频一区二区在线观看 | 欧美成人dvd在线视频| 香蕉成人久久| 亚洲最新在线| 国产精品一级久久久| 欧美国产专区| 日韩视频免费观看| 99精品国产99久久久久久福利| 欧美激情精品久久久久久蜜臀 | 亚洲专区一区二区三区| 亚洲欧洲日本国产| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久精品2019中文字幕| 久久久综合激的五月天| 精品av久久久久电影| 欧美xart系列在线观看| 亚洲人成毛片在线播放女女| 一区二区欧美在线| 国产视频一区在线观看| 欧美日韩国产区一| 欧美亚洲自偷自偷| 国产精品五区| 媚黑女一区二区| 久久精品国产久精国产爱 | 国产一区在线播放| 午夜精品偷拍| 亚洲人成高清| 欧美在线视频播放| 国产一区视频观看| 久久精品女人| 欧美在线视频网站| 久久精品99国产精品| 欧美国产日韩一区二区三区| 亚洲欧美清纯在线制服| 亚洲欧美影音先锋| 欧美亚洲第一区| 伊人成综合网伊人222| 欧美成人xxx| 久久亚洲综合网| 欧美性大战久久久久| 一本综合久久| 99视频超级精品| 久久久国产一区二区| 国产精品尤物福利片在线观看| 理论片一区二区在线| 欧美激情精品| 亚洲国产一区二区a毛片| 狠狠久久亚洲欧美专区| 国产日韩欧美一区二区三区在线观看 | 一区二区三区久久久| 亚洲精选成人| 国产精品女主播| 欧美一区二区视频观看视频| 亚洲欧美中文字幕| 新狼窝色av性久久久久久| 亚洲巨乳在线| 亚洲第一综合天堂另类专| 国产精品国产三级国产aⅴ入口 | 午夜国产精品视频免费体验区| 欧美激情国产日韩| 99精品视频免费观看视频| 午夜精品久久久久久99热| 蜜臀av一级做a爰片久久| 亚洲国产精品热久久| 亚洲午夜精品一区二区| 亚洲韩国青草视频| 亚洲成人在线网| 久久精品国产精品亚洲综合| 欧美亚洲系列| 在线视频亚洲| 久久在线免费视频| 国产精品欧美久久久久无广告| 国产精品国产精品国产专区不蜜| 国产精品嫩草久久久久| 国内偷自视频区视频综合| 狠狠爱综合网| 一区二区三区 在线观看视频| 亚洲欧美日韩精品| 欧美大片国产精品| 久久久久国产成人精品亚洲午夜| 亚洲综合不卡| 久久精品99国产精品酒店日本| 国外成人在线视频| 亚洲午夜精品视频| 久久影院午夜片一区| 嫩草国产精品入口| 国产日产欧产精品推荐色| 免费国产自线拍一欧美视频| 亚洲视频在线观看免费| 国产伦精品一区二区| 亚洲一级电影| 日韩亚洲欧美在线观看| 亚洲欧美综合v| 国产精品高清一区二区三区| 久久一区二区三区四区| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产一区二区三区高清| 亚洲综合视频网| 最新热久久免费视频| 久久人人九九| 亚洲无吗在线| 亚洲精品视频在线观看网站| 久久久噜噜噜久噜久久| 欧美电影在线观看| 国产欧美一区二区精品仙草咪| 亚洲少妇在线| 免费久久久一本精品久久区| 精品成人在线视频| 亚洲无人区一区| 国产精品久久一级| 黄色成人在线观看| 久久久91精品国产一区二区精品| 欧美日韩成人一区二区| 亚洲国产欧美在线| 欧美一区二区视频观看视频| 国精品一区二区| 亚洲一区二区三区成人在线视频精品 | 亚洲一区二区综合| 亚洲免费精彩视频| 亚洲国产合集| 欧美高清视频在线观看| 亚洲国产成人在线播放| 久久综合亚洲社区| 蜜桃久久av| 亚洲一区尤物| 久久激情中文| 久久久久久久久久码影片| 亚洲国产成人porn| 欧美一区不卡| 亚洲欧美日韩一区在线观看| 亚洲图片在线| 久久动漫亚洲| 久久精品国产999大香线蕉| 欧美专区在线播放| 欧美日韩午夜精品| 久久久xxx| 亚洲免费高清视频| 国产日韩精品一区二区| 91久久国产综合久久91精品网站| 久久综合一区二区| 亚洲视频在线观看一区| 亚洲免费电影在线| 免费在线亚洲| 亚洲精品一区二区三区av| 亚洲欧洲中文日韩久久av乱码| 久久久91精品| 欧美伊人久久久久久久久影院 | 国产精品久久久久久av下载红粉 | 欧美中文字幕视频| 国产精品成人aaaaa网站| 亚洲免费在线| 国产精品久久久久毛片大屁完整版 | 久久国产视频网站| 欧美视频在线观看视频极品| 在线精品亚洲一区二区| 久久久水蜜桃av免费网站| 夜色激情一区二区| 欧美视频一区二区三区…| 久久久99久久精品女同性| 激情六月婷婷综合| 一区二区三区福利| 国产欧美精品xxxx另类| 欧美日韩视频不卡| 欧美一区日本一区韩国一区| 欧美一级成年大片在线观看| 久久久久综合| 91久久夜色精品国产网站| 久久激情视频| 国产欧美日韩综合精品二区| 久久精品夜色噜噜亚洲aⅴ| 亚洲伦理在线| 国产亚洲欧美另类一区二区三区| 麻豆视频一区二区| 欧美福利视频| 久久婷婷av| 亚洲精品日韩在线| 久久久91精品国产| 国产精品成人免费| 久久久久久久综合狠狠综合| 欧美一区二区三区在线视频| 亚洲区中文字幕| 午夜伦理片一区| 亚洲国产三级| 激情成人亚洲| 欧美成人精品在线播放| **网站欧美大片在线观看| 欧美第一黄色网| 久久综合九色综合欧美狠狠| 亚洲欧美久久久久一区二区三区| 亚洲伦理在线免费看| 亚洲黄色有码视频| 欧美在线综合视频| 亚洲欧洲av一区二区| 欧美大香线蕉线伊人久久国产精品| 国产精品免费区二区三区观看|