??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩国产美,99成人免费视频,欧美阿v一级看视频http://cppblog.com/zyzx/category/21065.htmlC/C++QGUIQ嵌入式盘存储:李绍?zyzx), zyzx_lsl@163.comzh-cnSun, 22 Mar 2015 17:53:57 GMTSun, 22 Mar 2015 17:53:57 GMT60五、单H口l构与绘?/title><link>http://www.shnenglu.com/zyzx/archive/2015/03/19/210111.html</link><dc:creator>zyzx</dc:creator><author>zyzx</author><pubDate>Thu, 19 Mar 2015 14:04:00 GMT</pubDate><guid>http://www.shnenglu.com/zyzx/archive/2015/03/19/210111.html</guid><wfw:comment>http://www.shnenglu.com/zyzx/comments/210111.html</wfw:comment><comments>http://www.shnenglu.com/zyzx/archive/2015/03/19/210111.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/zyzx/comments/commentRss/210111.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/zyzx/services/trackbacks/210111.html</trackback:ping><description><![CDATA[<div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div><div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><span style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal; font-size: 12pt;">/*</span><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal;"><span style="font-size: 12pt;"> * Create By      : </span><span style="background-color: inherit; font-size: 12pt;">李绍良[lsl](zyzx)</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal;"><span style="font-size: 12pt;"> * </span><span style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal; font-size: 12pt;">Email</span><span style="font-size: 12pt;">            : </span><a href="mailto:zyzx_lsl@163.com" style="background-color: #ffffff; cursor: pointer; font-family: 微Y雅黑; font-style: normal; font-weight: normal;"><span style="font-size: 12pt;">zyzx_lsl@163.com</span></a></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal;"><span style="font-size: 12pt;"> * Create Time  : 2015-03-19</span></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal;"><span style="font-size: 12pt;"> * 转蝲h明来源:</span>http://www.shnenglu.com/zyzx/category/21065.html</div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal;"><span style="font-size: 12pt;">*/</span></div></div></div></div>        前几章已l将UI的基部分介绍完毕Q这章思考了很久Q不知道如何下笔。干脆就以入门界面时的考虑作ؓ切入炏V?/div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">        ׃使用windows界面ZQ如下入是用spy++截取的窗口截图?/div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><img src="http://www.shnenglu.com/images/cppblog_com/zyzx/LUI资料/vs2005_demo_test截图.png" alt="" border="0" height="637" width="927" /></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">        当spy++落在某个区域Q周围的一个黑框,pC的是这个窗口所在区域。不停的Udspy++查找H口Q我们可以发现如下图的规律:</div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><img src="http://www.shnenglu.com/images/cppblog_com/zyzx/LUI资料/vs2005_H口l构_CZ?png" alt="" border="0" height="680" width="947" /></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">        看到什么没有,如果认真学习q数据结构,q道这是一颗树。所有的UI元素都在q颗树里面,一个对话框Q也可以看成是一个树Q窗口结构也可以使用树这U数据结构来表达?/div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">        那么Windows的窗口结构就不难理解了,要么认ؓ是一个以“pȝ”为根的大树,要么也可以认为是去除“pȝ”q个根的一片森林。而在某时刻,永远只有一个处于激zȝ最层H口Q也是得到鼠标{响应的那颗树?/div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">        Windows把窗口搞了很多概念出来,拨开q些q雾Q实际上在我看来只需?#8220;对话?#8221;?#8220;控g”以表达UL复杂的UI界面。对话框与控仉是衍生自H口的概c对话框与控件唯一的区别在于:只有对话框才拥有U程执行权?/div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">        q里先只讨论如何这颗树l制成一副UI囄。其实也很简单,是遍历整颗树,使得每个节点H口l制(OnPaint函数)属于自己辖的区域。采用画家算法(后面l制会把前面l制的覆盖)Q如此UI界面q制出来了?/div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">如下图,中间的对话框。目前代码只实现了窗口绘制的一部分,控g啥也没有?/div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><img src="http://www.shnenglu.com/images/cppblog_com/zyzx/LUI资料/lui_5_H口l构与绘?png" alt="" border="0" height="671" width="819" /></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"></div><div style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-size: 14.399999618530273px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 16.799999237060547px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">附录Q章?源代?br /><a href="/Files/zyzx/LUI代码/my_lui_5_H口l构与绘?zip">/Files/zyzx/LUI代码/my_lui_5_H口l构与绘?zip</a></div><img src ="http://www.shnenglu.com/zyzx/aggbug/210111.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/zyzx/" target="_blank">zyzx</a> 2015-03-19 22:04 <a href="http://www.shnenglu.com/zyzx/archive/2015/03/19/210111.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>四、文本与字库http://www.shnenglu.com/zyzx/archive/2015/03/16/210062.htmlzyzxzyzxMon, 16 Mar 2015 13:03:00 GMThttp://www.shnenglu.com/zyzx/archive/2015/03/16/210062.htmlhttp://www.shnenglu.com/zyzx/comments/210062.htmlhttp://www.shnenglu.com/zyzx/archive/2015/03/16/210062.html#Feedback0http://www.shnenglu.com/zyzx/comments/commentRss/210062.htmlhttp://www.shnenglu.com/zyzx/services/trackbacks/210062.html
/*
 * Create By      : 李绍良[lsl](zyzx)
 * Email            : zyzx_lsl@163.com
 * Create Time  : 2015-03-16
 * 转蝲h明来源:http://www.shnenglu.com/zyzx/category/21065.html
*/
        Z么我们可以在屏幕上看到文字呢Q?/div>
        我们知道屏幕昄的是RGB三原Ԍ软g是一q位图(RGB8888{格式)交给昑֍Q再呈现到用户面前。也是说UI里面划分的控件也好、文字也|,M可显化部分都使用BMP位图来表达。所谓的控g也不q是工程师们赋予某个含有特定变化逻辑的位囑֌域?/span>
        也就是说文字的表现Ş式是一q位图,那么计算机如何L识哪个是"A"Q哪个是"B"呢?伟大的计机说了Q一切都是数Q也是0?。相应的各种~码标准应运而生Q比如ascii、GB2312、GBK{等。也是说一个数|表示一个文字,昄的时候却是用这个数值对应的囄?/span>
        那么软g所使用文字有二个部分了:1.所有的字符Ԍ2.字符串中每个字符对应的图片。字W串资源的做法就各领风骚了,有h编码;MFC使用exe的资源段Q打包做Cq制文g{等。不如何处理,最l都需要把一个字W串比如"Hello World!"交给l图模块。绘图模块则需要把q个字符串拆分成单个字符Q按照各个语a规则选取对应的图片,一个一个的贴到屏幕上(其实是后台缓存)。后面这个步骤一般由操作pȝ完成Q那么是如何做到的呢Q答案就是字库,以及字库的显C则?/span>
        字库一般分为栅格字库和矢量字库Q它们的目标都是Ҏ一个编码值取到对应图片。栅格字库相Ҏ说简单、高效,|络上有很多关于q个的文章,可以找找相关的资料?/span>
        q里为方便,q接取?linux-3.18.3/lib/fonts/font_10x18.c"q个文g作ؓ我们字库数据。其他类型的字库和这个类|不过是将字模和规则存放于二进制文件中而已?/span>

        如上图,双的注释框中,有个明显的由"1"l成的图案。其实也是׃个个比特位组成的二值图片?/div>
        fontdata_10x18[FONTDATAMAX]q些数据l成的规则也很简单:
1. 二值图片高?8Q宽?6(有效宽度?0)Q每一行有2个字节,一个字模共36字节
2. 某ascii值的字模首地址为:fontdata_10x18[id * 36]
3. q个是等宽字?/span>
        那么要显C?1"其实是是需要将比特?的地方着色绘制屏q?/div>
        如下函数x此二值数据,l制到缓存中?/div>
int_t CWinGraph::DrawFont(LUI_CANVAS *ptr, int_t zoom, char id, int_t x, int_t y, int_t &cx, int_t &cy,uint32 color, bool border, uint32 color_border)
{
//下段代码q不严}
//实际的情况则需要看Ҏ字库的设计情?按如下的思\卛_
int_t w = 10, h = 18;
unsigned char *pFont = &fontdata_10x18[id * 36];
unsigned char *pData = ptr->pData + y * ptr->pitch + x * ptr->bpp;
for(int j = 0; j < h; j++)
{
unsigned char *pd = pData;
for(int i = 0; i < w; i++)
{
unsigned char *pf = pFont + j * 2 + (i >> 3);
if(*pf & (0x1 << (7 - i & 0x7)))
{
memcpy(pd, &color, ptr->bpp);
}
else if(border)
{
//单描边算?/div>
int xi = 0, yj = 0;
if(0 < j)
{
xi = i; yj = j - 1;
}
else if(j < (h - 1))
{
xi = i; yj = j + 1;
}
else if(0 < i)
{
xi = i - 1; yj = j;
}
else if (i < (cx - 1))
{
xi = i + 1; yj = j;
}
pf = pFont + yj * 2 + (xi >> 3);
if(*pf & (0x1 << (7 - xi & 0x7)))
{
memcpy(pd, &color_border, ptr->bpp);
}
}
pd += ptr->bpp;
}
pData += ptr->pitch;
}
cx = w;
cy = h;
 return 0;
}
        好了至于字符Ԍ那就很简单了Q一个一个调用这个函数就可以了?/div>
如下囑֍是测试绘制的字符Ԍ


zyzx 2015-03-16 21:03 发表评论
]]>三、基l图模块http://www.shnenglu.com/zyzx/archive/2015/03/15/210040.htmlzyzxzyzxSun, 15 Mar 2015 06:08:00 GMThttp://www.shnenglu.com/zyzx/archive/2015/03/15/210040.htmlhttp://www.shnenglu.com/zyzx/comments/210040.htmlhttp://www.shnenglu.com/zyzx/archive/2015/03/15/210040.html#Feedback0http://www.shnenglu.com/zyzx/comments/commentRss/210040.htmlhttp://www.shnenglu.com/zyzx/services/trackbacks/210040.html/*
 * Create By      : 李绍良[lsl](zyzx)
 * Email            : zyzx_lsl@163.com
 * Create Time  : 2015-03-14
 * 转蝲h明来源:http://www.shnenglu.com/zyzx
*/
如图Q绘图模块基本上是一些图形运方面的接口?/span>
        l图模块围绕的中心的是画布:
typedef struct LUI_CANVAS
{
    int_t cx;                              //d?/span>
    int_t cy;                              //d?/span>
    int_t bpp;                           //像素位宽 RGB1555 2字节QRGB8888 4字节
    int_t pitch;                         //行跨? = cx * bpp
    int_t len;                            //*pData数据长度 = pitch * cy
    unsigned char *pData;      //甌的内?/span>
}LUI_CANVAS;
        其实表征的就是一个bmp囄。像素的格式一般采用RGB1555Q与RGB8888格式Q两q都可以透明度信息表C出来。采用RGB1555格式卛_以剩下不内存,也可以降低CPU开销Q同时UI设计师也可以相对宽松的选择囄色彩。我们做的几代品都没有逃脱选用RGB1555格式的命q,在需要支持全?920*1080P的分辨率甚至4K界面的分辨率、ARMgQ甚臛_低端Q这U条件下Q想使用RGB8888直就是一U奢望?/span>
        至于如何l制基础囑ŞQ这个网l上很多。实际项目中也不是我们写的模拟代码,h囑Ş处理芯片中有相关的图形加速模块,比这个模拟代码效率高多了?/span>
        创徏和销毁画布在q里负责Q主要是防止某些嵌入式设备图形部分需要用设备专属内存,而不是随意new出来的?/span>
        l制囄q一块还需要图片打包模块的支持Q后面作Z个专题?/span>
        l制文字Q有些难度,我们一直用的是栅格字库(Z效率、用便利上考虑Q,也可以扩展用矢量字库。国际化的界面估计是整个UI体系的最大难点了Q我们也只是量兼容更多的语a。这部分也后面作Z个专题?/span>
        到这里,基础理论差不多了。我们需要在Windows上徏立调试环境,则还需要创Z个Win32的demo工程?/span>
        
        demoE序使用的是vs2005直接生成的WIN32E序Q也仅仅d了一个类CWinGraphQ插入到了Win32程中。主要的使用WINH口把我们的界面昄出来
        主要是在H口消息处理中简单的加入了这些代?/span>
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此dLl图代码...
int_t cx, cy;
g_pGraph->ScreenSize(&cx, &cy);
g_pGraph->Refresh(0, 0, cx, cy);
EndPaint(hWnd, &ps);
case WM_CREATE: 
g_pGraph->Initial(hWnd, DLG_WIDTH, DLG_HEIGHT); 
break; 
case WM_DESTROY: 
g_pGraph->Quit(); 
PostQuitMessage(0); 
break;
       
        代码本n没有使用比较严}的风|很多参数和做法后面还会响应的调整Q仅以此来表辑֯接模块需要做的事情?/span>
        如下图demoE序跑v来的效果图,虽然单,但却是基?/span>


zyzx 2015-03-15 14:08 发表评论
]]>二、LUI基础框架http://www.shnenglu.com/zyzx/archive/2015/03/15/210039.htmlzyzxzyzxSun, 15 Mar 2015 06:02:00 GMThttp://www.shnenglu.com/zyzx/archive/2015/03/15/210039.htmlhttp://www.shnenglu.com/zyzx/comments/210039.htmlhttp://www.shnenglu.com/zyzx/archive/2015/03/15/210039.html#Feedback0http://www.shnenglu.com/zyzx/comments/commentRss/210039.htmlhttp://www.shnenglu.com/zyzx/services/trackbacks/210039.html
/*
 * Create By      : 李绍良[lsl](zyzx)
 * Email            : zyzx_lsl@163.com
 * Create Time  : 2015-03-14
 * 转蝲?span style="background-color: #ffffff; color: #000000; font-family: 微Y雅黑; font-style: normal; font-weight: normal;">注明来源Q?a href="http://www.shnenglu.com/zyzx" style="background-color: inherit; cursor: pointer;">http://www.shnenglu.com/zyzx
*/
        取名为LUI仅仅为避免其他库名字冲突Q?/span>如上图GUI框架基本l构无外呼四个基模块
1. l图模块Q负责绘制基本图形(U条Q矩形,囄Q文本等Q,负责绘制的UI囄递交l显?/div>
2. 消息机制Q负责将用户使用外围讑֤Q鼠标、键盘、触摸屏{)产生的消息有机的传导到UI工程师所写的响应代码?/div>
3. H口l护Q负责后台处理UI的窗口链、窗口关p,协调整个UI体系
4. 控gQ给UI工程提供的API接口Q操U늕?/div>
        此外q有需要注意的是UI的资源:囄、字W串、字?/span>
        一般来Ԍ会将q些资源做打包处理。比如图片,有专门的囄理模块Q那么界面上x的只有图片的ID。字W串也是如此Q界面上也只是关注字W的ID。这h们动态替换我们Y件的皮肤和语aQ将变得非常方便?/span>

        (^-^)Q看吧,秘的GUI其实p么点道道Q其他的Ҏ都是在q个基础上衍生出来的?/div>


zyzx 2015-03-15 14:02 发表评论
]]>
一、寄语:再次被重造的GUI轮子http://www.shnenglu.com/zyzx/archive/2015/03/15/210038.htmlzyzxzyzxSun, 15 Mar 2015 05:54:00 GMThttp://www.shnenglu.com/zyzx/archive/2015/03/15/210038.htmlhttp://www.shnenglu.com/zyzx/comments/210038.htmlhttp://www.shnenglu.com/zyzx/archive/2015/03/15/210038.html#Feedback2http://www.shnenglu.com/zyzx/comments/commentRss/210038.htmlhttp://www.shnenglu.com/zyzx/services/trackbacks/210038.html/*
 * Create By      : 李绍良[lsl](zyzx)
 * Email            : zyzx_lsl@163.com
 * Create Time  : 2015-03-14
 * 转蝲?/span>注明来源Q?/span>http://www.shnenglu.com/zyzx
*/
        按照惯例得啰嗦一番^_^。我惛_的这个专题就是再ơ重新创造GUIq个轮子?/span>
        从大一下学期(2004q年初)开始接触VBQ第一ơ写出来?#8220;Hello World!”是界面E序。VBl我带来的感觉是写界面如此简单,但随后的学习和工作对界面是即爱又狠。用MFC{,写个玩具倒是很简单,真正惛_成可以用的软g却是坑爹之极。先且不文障,找个资料扑֍天,q得一边尝试一Ҏ惛_软在底层到底q了些啥。这也是初学做WindowsE序的悲哀吧,整天围这个鸟问题折腾?/span>
        在大学,从学习VBQ再自学WIN32~程Q再C用MFC。毕业后在武汉一家皮包公司做WinCEQ用的是wxWindowsQ前些年留下的BLOG是那个时候的W记和心得。在武汉待了两年后,2009q在深圳C目前的这家公司(做安防嵌入式DVR/NVR之类Q其他的׃说了Q当前也处于卛_职Q悲哀啊,也只有离职期间才有时间ȝQ,才深q被震撹{原来UI也可以自׃针一U(一点,一U条Q将其实玎ͼ只是当时的实现方案比较原始,但确实实启发了我的思维Q不再认为GUI只有微Y、苹果、QT、mimiGUI、wxWindows{才可以其实现Q我们也可以有自q思维来实现GUI?/span>
        在此特别感谢当年的团队在q个斚w的思维U篏。DVR3.0时代界面设计思\由前人完成,而我做的是在这个界面思\下实现、完善、优化和扩展。此时的界面也就摆脱了当初简单单的结构,为公品顺利打开国际化市场,树立行业DVR的OME厂商品牌Q功劳不?012q左叻Iȝ在前一代品界面用上的不I提出来新一代品界面需求,而我则开始构思GUI体系Q规划实C4.0界面框架体系?.0使用的是C++实现Qƈ利用了基本C++cȝ性,Z密v见,我要再造的GUI轮子按新的思\扩展Q重写这个部分的代码?/span>
        
        好吧Q看看cppblog上还有一位造GUI轮子的牛人vczh(http://www.shnenglu.com/vczh/)。看来GUI的实现可不只有一两种ҎQ每个h都可以实现自己GUI?/span>
q里是我的GUI的需求:
1. 主要目标围绕嵌入式^台的界面Q需要跨q_实现
2. 内存QCPU消耗不得过?/span>
3. 量_Q以满基本要求Z
4. 接口使用标准CQ以库的方式提供
5. 只处理UI相关的部分,其他一律不考虑
6. 能否UI使用lua脚本语言来实?/span>
7. 只用基语言Q不使用高语言Ҏ?/span>
        大概p些吧Q后面想C再加q来?/span>


zyzx 2015-03-15 13:54 发表评论
]]> ݺɫþۺ| ޷?Vþò| þþþþþž99Ʒ| ѾþҹƷ| ҹƷþþþþ| 97rþþƷ99| Ʒպҹþ| AVһȾþ | Ʒһþ| ˾þô߽Ʒ| Ʒξþþþ99վ| þ޾ƷƷ | Ʒþþþþ12| þþƷоƷ| ձWVһһþ㽶| ĻhdþþƷ | þþþһƷ| þ91Ʒþ91ۺ| vaĻþ | һAvëƬþþƷ| þþþùƷŮӰԺ| ھƷ˾þþӰԺ| þþƷֻоƷ2020| 99þ99þþþƷ| þþþþþþòҰ߳| þۺɫ| þۺ¶þü| þѹƷ| þԭƷ| þþƷƵ| þ¾Ʒ| һþþþþþ| Ʒþþþþù| 91Ʒۿ91þþþþ| 99þ99þþƷ| ɫۺϾþۺ| ٸ޾þþþþ4| ھƷþþþþþcoent| þþþþþþþþѾƷ| þþþƷר | ŷһþþƷ|