• <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>

            zyzx的小窩

            C/C++,GUI,個(gè)人移動(dòng)存儲(chǔ),zyzx_lsl@163.com

             

            五、單窗口結(jié)構(gòu)與繪制

            /*
             * Create By      : 李紹良[lsl](zyzx)
             * Email            : zyzx_lsl@163.com
             * Create Time  : 2015-03-19
             * 轉(zhuǎn)載請(qǐng)注明來源:http://www.shnenglu.com/zyzx/category/21065.html
            */
                    前幾章已經(jīng)將UI的基礎(chǔ)部分介紹完畢,這章思考了很久,不知道如何下筆。干脆就以入門界面時(shí)的考慮作為切入點(diǎn)。
                    就以使用windows界面為例,如下入是使用spy++截取的窗口截圖。
                    當(dāng)spy++落在某個(gè)區(qū)域,周圍的一個(gè)黑框,就表示的是這個(gè)窗口所在區(qū)域。不停的移動(dòng)spy++查找窗口,我們可以發(fā)現(xiàn)如下圖的規(guī)律:
                    看到什么沒有,如果認(rèn)真學(xué)習(xí)過數(shù)據(jù)結(jié)構(gòu),就知道這是一顆樹。所有的UI元素都在這顆樹里面,一個(gè)對(duì)話框,也就可以看成是一個(gè)樹,窗口結(jié)構(gòu)也可以使用樹這種數(shù)據(jù)結(jié)構(gòu)來表達(dá)。
                    那么Windows的窗口結(jié)構(gòu)就不難理解了,要么認(rèn)為是一個(gè)以“系統(tǒng)”為根的大樹,要么也可以認(rèn)為是去除“系統(tǒng)”這個(gè)根的一片森林。而在某時(shí)刻,永遠(yuǎn)只有一個(gè)處于激活的最頂層窗口,也就是得到鼠標(biāo)等響應(yīng)的那顆樹。
                    Windows把窗口搞了很多概念出來,撥開這些迷霧,實(shí)際上在我看來只需要“對(duì)話框”與“控件”足以表達(dá)紛繁復(fù)雜的UI界面。對(duì)話框與控件都是衍生自窗口的概念。對(duì)話框與控件唯一的區(qū)別在于:只有對(duì)話框才擁有線程執(zhí)行權(quán)。
                    這里先只討論如何將這顆樹繪制成一副UI圖片。其實(shí)也很簡(jiǎn)單,就是遍歷整顆樹,使得每個(gè)節(jié)點(diǎn)窗口繪制(OnPaint函數(shù))屬于自己管轄的區(qū)域。采用畫家算法(后面繪制會(huì)把前面繪制的覆蓋),如此UI界面就繪制出來了。
            如下圖,中間的對(duì)話框。目前代碼只實(shí)現(xiàn)了窗口繪制的一小部分,控件啥也沒有。
            附錄:章節(jié)5源代碼
            /Files/zyzx/LUI代碼/my_lui_5_窗口結(jié)構(gòu)與繪制.zip

            posted on 2015-03-19 22:04 zyzx 閱讀(2263) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 自己動(dòng)手寫GUI

            評(píng)論

            # re: 五、單窗口結(jié)構(gòu)與繪制 2015-04-09 16:21 wxf041041

            博主,繼續(xù)往下寫啊,看了你的文章,感覺很受啟發(fā)。。  回復(fù)  更多評(píng)論   

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            常用鏈接

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久久国产乱子伦精品作者| 伊人久久大香线蕉精品| 久久天天躁狠狠躁夜夜不卡| 亚洲国产精品无码久久久秋霞2| 99久久国产亚洲综合精品| 久久久无码精品亚洲日韩按摩| WWW婷婷AV久久久影片| 久久99精品久久久久久齐齐| 亚洲国产精品无码久久久秋霞2| 久久精品嫩草影院| 久久伊人五月丁香狠狠色| 色综合久久中文综合网| 久久久久人妻一区二区三区| 99久久人妻无码精品系列| 亚洲国产精品无码久久九九| 粉嫩小泬无遮挡久久久久久| 日韩久久久久中文字幕人妻| 久久久久一区二区三区| 久久久久久国产a免费观看黄色大片 | 色综合久久88色综合天天| 久久久久久久91精品免费观看| 欧美久久精品一级c片片| 亚洲中文字幕久久精品无码喷水| 久久精品国产第一区二区| 精品久久久久久无码专区| 精品无码久久久久国产动漫3d| 久久久无码精品午夜| 久久狠狠色狠狠色综合| 久久精品国产亚洲AV电影| 亚洲中文字幕无码久久2020| 久久无码专区国产精品发布| 久久久WWW成人免费毛片| 国产精品嫩草影院久久| 国产精品美女久久久久AV福利| 97久久国产亚洲精品超碰热| 久久AV高潮AV无码AV| 伊人久久大香线蕉综合Av| 亚洲精品乱码久久久久66| 色狠狠久久综合网| 99久久无色码中文字幕人妻| 久久久久久久久波多野高潮|