• <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>
            隨筆 - 181  文章 - 15  trackbacks - 0
            <2007年8月>
            2930311234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            My Tech blog

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            1、命令管理器管理命令

            clip_image0023

            void testCommandManagerArrangeCommand()
            {
                cout<<">>>>>>>>>>>>命令管理器調(diào)度命令 <<<<<<<<<<<<"<<endl;
                CDeleteCommand *pCommand1=new CDeleteCommand("obj1");
                CDeleteCommand *pCommand2=new CDeleteCommand("obj2");
                CDeleteCommand *pCommand3=new CDeleteCommand("obj3");
                CDeleteCommand *pCommand4=new CDeleteCommand("obj4");

                CCommandManager manager;
                manager.Do(pCommand1);
                manager.Do(pCommand2);
                manager.Do(pCommand3);
                manager.Undo();
                manager.Undo();
                manager.Redo();
                manager.Undo();
                manager.Do(pCommand4);
                manager.Undo();
                manager.Redo();
            }

            執(zhí)行效果:

            >>>>>>>>>>>>命令管理器調(diào)度命令<<<<<<<<<<<<
            obj1 is deleted.
            obj2 is deleted.
            obj3 is deleted.
            obj3 is undeleted.
            obj2 is undeleted.
            obj2 is deleted.
            obj2 is undeleted.
            obj4 is deleted.
            obj4 is undeleted.
            obj4 is deleted.

            2、命令管理器管理命令管理器

            //命令管理器調(diào)度命令管理器
            void testCommandManagerArrangeCommandManager()
            {
                cout<<">>>>>>>>>>>>命令管理器調(diào)度命令管理 器<<<<<<<<<<<<"<<endl;
                CDeleteCommand *pCommand1=new CDeleteCommand("cm1--obj1");
                CDeleteCommand *pCommand2=new CDeleteCommand("cm1--obj2");
                CDeleteCommand *pCommand3=new CDeleteCommand("cm1--obj3");
                CDeleteCommand *pCommand4=new CDeleteCommand("cm2--obj1");
                CDeleteCommand *pCommand5=new CDeleteCommand("cm2--obj2");
                CDeleteCommand *pCommand6=new CDeleteCommand("cm2--obj3");
                CCommandManager cm1;
                CCommandManager cm2;
                CCommandManager cmMain;
                cm1.SetParentCommandManager(&cmMain);
                cm2.SetParentCommandManager(&cmMain);
                cm1.Do(pCommand1);
                cm2.Do(pCommand4);
                cm1.Do(pCommand2);
                cm2.Do(pCommand5);
                cm1.Do(pCommand3);
                cm2.Do(pCommand6);
                cmMain.Undo();
                cmMain.Undo();
                cmMain.Undo();
                cmMain.Redo();
                cmMain.Undo();

            }

            執(zhí)行效果:

            >>>>>>>>>>>>命令管理器調(diào)度命令管理器<<<<<<<<<<<<
            cm1--obj1 is deleted.
            cm2--obj1 is deleted.
            cm1--obj2 is deleted.
            cm2--obj2 is deleted.
            cm1--obj3 is deleted.
            cm2--obj3 is deleted.
            cm2--obj3 is undeleted.
            cm1--obj3 is undeleted.
            cm2--obj2 is undeleted.
            cm2--obj2 is deleted.
            cm2--obj2 is undeleted.

            注意:

            1、確保命令的Execute和UnExecute是完全可逆的操作。

            2、要保障Execute和UnExecute的可逆性,特別要關(guān)注他們執(zhí)行的環(huán)境(比如繪圖的時(shí)候,這些操作要有同樣的尺寸標(biāo)準(zhǔn),否則很難實(shí)現(xiàn)互逆的操作)。

            3、注意不要插入空命令。

            代碼

            posted on 2008-03-16 23:23 littlegai 閱讀(1236) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 我的代碼玩具
            色8久久人人97超碰香蕉987| 国产精品午夜久久| 日韩精品久久久肉伦网站| 热99RE久久精品这里都是精品免费 | 99国产精品久久| 国产成人精品久久| 欧美与黑人午夜性猛交久久久| 精品伊人久久久| 精品多毛少妇人妻AV免费久久| 久久久久久青草大香综合精品| 久久久久久伊人高潮影院| 久久综合给合久久狠狠狠97色69| 久久精品国产清高在天天线| 日韩一区二区三区视频久久| 精品免费tv久久久久久久| 久久婷婷五月综合97色直播| 99久久免费只有精品国产| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 久久久久久久99精品免费观看| 亚洲国产精品久久久久婷婷老年| 99精品国产免费久久久久久下载| 久久国产精品免费一区二区三区 | 青青青国产精品国产精品久久久久 | 人妻无码中文久久久久专区| 久久99精品国产麻豆蜜芽| 久久综合九色综合精品| 久久久久亚洲AV片无码下载蜜桃| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 日韩久久久久久中文人妻| 伊人久久大香线蕉成人| 日本精品久久久久久久久免费| 久久99中文字幕久久| 精品久久久久久无码专区| 性高湖久久久久久久久| 亚洲精品tv久久久久久久久| 亚洲人成电影网站久久| 久久久久久久波多野结衣高潮| 久久久久av无码免费网| 少妇精品久久久一区二区三区| 激情伊人五月天久久综合| 成人免费网站久久久|