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

隨筆-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>
            亚洲欧美日韩综合| 亚洲一区二区三区午夜| 蜜桃久久av一区| 久久免费精品视频| 久久久久久久久久久久久久一区 | 欧美一区二区三区在线观看 | 亚洲免费av观看| 亚洲性图久久| 久久久久久久一区二区三区| 欧美国产一区二区| 国产精品日韩精品欧美在线 | 欧美区一区二区三区| 欧美三级在线| 国产视频欧美| 亚洲美女区一区| 销魂美女一区二区三区视频在线| 久久精品成人一区二区三区| 免费观看成人www动漫视频| 欧美成年人网| 亚洲综合成人在线| 免费毛片一区二区三区久久久| 欧美日韩蜜桃| 激情懂色av一区av二区av| 亚洲精品综合久久中文字幕| 性欧美video另类hd性玩具| 欧美成人午夜视频| 亚洲私人影院| 欧美成人午夜影院| 国产亚洲人成网站在线观看| 一区二区欧美日韩| 欧美成人精品激情在线观看| 中日韩美女免费视频网站在线观看| 久久久久九九九| 国产精品久久午夜夜伦鲁鲁| 亚洲精品你懂的| 久久午夜精品一区二区| 亚洲一区二区免费| 你懂的视频一区二区| 国产一区二区三区奇米久涩 | 欧美一区2区三区4区公司二百| 欧美 日韩 国产在线| 亚洲国内精品| 国产精品扒开腿爽爽爽视频| 亚洲精品久久久久久久久久久久久| 久久久国产一区二区| 一区二区三区视频在线| 欧美另类专区| 亚洲激情另类| 欧美激情精品久久久久久大尺度| 欧美在线free| 国产一区欧美| 玖玖精品视频| 美女脱光内衣内裤视频久久网站| 伊人久久婷婷| 欧美大秀在线观看| 久久婷婷国产综合国色天香| 国产日韩一区在线| 欧美中文字幕在线播放| 亚洲欧美区自拍先锋| 国产精品入口麻豆原神| 午夜精品久久久久久99热| 亚洲色诱最新| 国产亚洲精品久| 久久久国际精品| 久久国产88| 亚洲国产黄色片| 亚洲国产欧美一区二区三区久久| 久久综合综合久久综合| 亚洲国产成人高清精品| 亚洲二区视频| 欧美三日本三级少妇三2023| 亚洲特级毛片| 亚洲欧美日韩中文视频| 激情六月婷婷久久| 欧美黄色aaaa| 欧美午夜视频在线观看| 久久成年人视频| 久久网站免费| 夜夜爽99久久国产综合精品女不卡| 夜夜嗨av一区二区三区免费区| 国产精品手机在线| 欧美凹凸一区二区三区视频| 欧美激情在线免费观看| 欧美一区久久| 欧美成人蜜桃| 欧美一区二区日韩| 麻豆国产精品一区二区三区| 99国产精品99久久久久久| 亚洲欧美日韩国产一区| 亚洲国产精品嫩草影院| 一本色道久久综合精品竹菊 | 欧美一二三区在线观看| 久久精品欧洲| 亚洲午夜一区| 久久女同互慰一区二区三区| 一本大道久久a久久精品综合| 欧美一级大片在线观看| 一区二区三区国产精华| 久久久99久久精品女同性| 一区二区三区四区蜜桃| 中国女人久久久| 正在播放日韩| 欧美一区二区性| 亚洲免费成人| 欧美中文日韩| 亚洲男女自偷自拍| 久久综合中文| 久久久精品动漫| 国产精品久久久久久久第一福利 | 欧美精品在线一区| 久久久欧美精品sm网站| 欧美色图天堂网| 欧美国产日韩一二三区| 国产日韩精品入口| 99精品久久免费看蜜臀剧情介绍| 黑人巨大精品欧美一区二区| 亚洲午夜激情在线| 亚洲视频你懂的| 欧美精品一区二区三区在线看午夜| 久久久久国产一区二区三区四区 | 亚洲国产毛片完整版| 午夜久久资源| 午夜精品久久久久久久99樱桃| 欧美日韩成人激情| 亚洲丁香婷深爱综合| 狠久久av成人天堂| 久久黄金**| 久久夜色精品国产欧美乱极品| 国产精品久久久久aaaa| 一本色道久久综合精品竹菊| 一本到高清视频免费精品| 欧美电影在线观看| 亚洲国产成人精品久久| 亚洲第一在线综合网站| 久久精品亚洲一区二区三区浴池| 久久精品欧美日韩精品| 国产亚洲一二三区| 久久国产日本精品| 久热精品视频在线| 在线观看欧美日本| 久久综合网络一区二区| 欧美激情第一页xxx| 亚洲精品资源| 欧美三级免费| 亚洲一区二区视频| 久久精品午夜| 亚洲成人在线视频播放| 毛片一区二区| 亚洲精品欧美| 99国产精品私拍| 国产精品国产三级国产普通话99 | 国产欧美日韩综合| 欧美一区二区三区精品| 玖玖精品视频| 99riav久久精品riav| 国产精品久久久久久妇女6080 | 久久久91精品国产一区二区三区| 欧美诱惑福利视频| 精品成人在线视频| 欧美国产日韩a欧美在线观看| 亚洲三级影片| 欧美亚洲一区二区三区| 精品99一区二区| 欧美日韩精品免费观看视频| 亚洲综合国产激情另类一区| 国产精品观看| 亚洲国产精品日韩| 国产精品中文在线| 久久久久久9| 日韩亚洲国产欧美| 久久久噜噜噜久久久| 亚洲人成7777| 久久久久一区| 99视频精品在线| 国产日韩欧美不卡| 欧美成人免费在线视频| 亚洲综合大片69999| 亚洲第一精品福利| 欧美一激情一区二区三区| 亚洲激情电影中文字幕| 国产农村妇女精品| 欧美激情欧美狂野欧美精品| 亚洲欧美视频在线观看| 日韩一级片网址| 欧美福利电影网| 久久高清国产| 亚洲一区在线免费| 亚洲日本中文字幕| 黑人操亚洲美女惩罚| 国产精品久久久久久久久婷婷 | 久久国产日本精品| 一区二区日韩免费看| 欧美福利视频在线观看| 欧美主播一区二区三区| 亚洲视频精选| 夜久久久久久| 亚洲精品久久久久| 亚洲高清自拍| 伊人春色精品| 国产一区二区三区日韩欧美|