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

            ACG狂人

            其實我更愛姐汁...

            關于MVC PropertySet OperatorStack的一些設計思考

            最近在給公司里碼一個場景編輯器,大致得實現的功能有:
            地形高度刷
            地形紋理刷
            放置小物件和房屋
            放置粒子系統
            設置路徑點和只能攝像機點

            算是個簡單的不能再簡單的場景編輯器了吧...但是這樣的一個工具還是很頭痛的,特別是用C++來寫...
            頭痛的原因不是別的,正是這個表現層和后臺數據同步問題。這個在C++的UI庫中目前還真沒有什么現成的好辦法,于是開始造輪子,為MFC寫了PropertySet和OperatorStack。
            首先這個UI數據和內存數據雙向同步的問題直接讓我崩潰了...由于以前寫過一些工具,知道這東西如果不做個設計就開始沖著功能寫的話會有什么后果。嗯,于是繼承封裝了CMFCPropertyGridCtrl控件,為每個葉子屬性項封裝了一個LeafItem,根據屬性名來更新PropertySet里對應的數據......具體實現幾千字略- - 最終成型時代碼這樣:
            DynamicObject obj;
            propertyGrid.attachObject(obj);
            這里的DynamicObject繼承PropertySet,于是propertyGrid控件就會顯示obj里所有的屬性數據了...然后是雙向更新問題,目前是給Property里加了一個eventValueChanged事件響應,讓PropertyGridCtrl監聽這些數據的變化,而propertyGridCtrl這個UI上的數據變化同樣是派生實現CMFCPropertyGridCtrl的值變化響應函數來給綁定的LeafItem更新數據,也是直接就刷新到Property里了。
            還有OperatorStack.....這個是操作棧,記錄用戶操作的,用于撤銷和重做的操作,也用到了PropertySet來記錄變化對象的屬性快照,嗯,叫SnapShootRecord的類里面記錄的都是一個對象的變化屬性。
            先就記錄這么多,很亂很不容易懂,主要給我自己做個記錄的,沒啥貢獻,實際上還有很多不好用的地方,所以最近在想一些改進設計,等我想好了放上來詳細設計和源碼吧.......

            posted on 2010-11-20 19:30 釀妹汁 閱讀(2044) 評論(2)  編輯 收藏 引用 所屬分類: C++

            評論

            # re: 關于MVC PropertySet OperatorStack的一些設計思考 2010-11-20 22:02 戰魂小筑

            QT Please  回復  更多評論   

            # re: 關于MVC PropertySet OperatorStack的一些設計思考 2010-12-22 18:37

            QT個蛋蛋......
            編個QT能把我小電腦的硬盤折騰壞了.....
            開個玩笑...實際上我是不適應QT的那種奇怪的感覺,怎么說呢......
            自帶的編輯器用的不好用,給vs上個ui編輯插件又感覺很蹩腳,于是果斷放棄......  回復  更多評論   

            亚洲综合日韩久久成人AV| 亚洲国产成人久久精品动漫| 久久亚洲高清综合| 久久亚洲AV无码西西人体| 伊人久久五月天| 精品综合久久久久久888蜜芽| 久久噜噜电影你懂的| 久久久久亚洲精品中文字幕| 亚洲精品乱码久久久久久蜜桃不卡| 国产精品久久成人影院| 麻豆久久久9性大片| 一级做a爱片久久毛片| 午夜不卡久久精品无码免费| 精品久久久久久无码国产| 亚洲精品乱码久久久久久久久久久久| 国产精品成人99久久久久| 一本一道久久综合狠狠老| 精品久久久久久国产三级| 精品国产乱码久久久久久郑州公司 | 久久久久亚洲av毛片大| 一本色道久久HEZYO无码| 伊人久久大香线蕉综合热线| 伊人久久大香线蕉精品| 国产V亚洲V天堂无码久久久| 99久久夜色精品国产网站| 久久夜色撩人精品国产小说| 91精品国产91久久久久久| 97精品伊人久久大香线蕉app| 欧美精品九九99久久在观看| 看全色黄大色大片免费久久久| 国产精品久久毛片完整版| 国产亚洲精品美女久久久| 久久精品国产网红主播| 色偷偷久久一区二区三区| 少妇精品久久久一区二区三区| 久久亚洲sm情趣捆绑调教 | 亚洲国产美女精品久久久久∴| 亚洲国产成人精品久久久国产成人一区二区三区综 | 一级做a爰片久久毛片人呢| 97久久久精品综合88久久| 精品综合久久久久久97超人|