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

            談VC++結(jié)合FLASH開發(fā)精美程序界面

            做過界面開發(fā)的人想必都清楚如果要用VC++來開發(fā)漂亮的程序界面其難度真是苦不堪言, 當(dāng)然VC++可以作出漂亮的界面但要投入大量的人力和時(shí)間其代碼量可以用海量來形容。BUG自然也就不計(jì)其數(shù)。本文主要介紹如何采用VC++結(jié)合FLASH在短時(shí)間內(nèi)以及很少的人力投入的情況開發(fā)出精美漂亮的軟件界面。在本例中VC++主要進(jìn)行相關(guān)數(shù)據(jù)邏輯及業(yè)務(wù)處理,F(xiàn)LASH則進(jìn)行相關(guān)的界面表現(xiàn)。FLASH和VC++之間采用XML流通信。VC++的XML解析庫為開源的TinyXml解析庫。 本實(shí)例的開發(fā)環(huán)境為visual studio 2003 + FLASH8.0。其效果圖如下:



















            下面將進(jìn)行詳細(xì)介紹:
            1、首先建一個(gè)基于MFC的對話框應(yīng)用程序。
            2、在對話框中插入名為Shockwave Flash Object的ActiveX控件.
            3、為該FLASH控件添加相應(yīng)的變量即FSCommand消息處理函數(shù).
            4、在OnInitDialog()函數(shù)添加如下代碼將相關(guān)數(shù)據(jù)傳給FLASH界面
             1    // TODO: 在此添加額外的初始化代碼
             2    //加載flash界面
             3    char szBuf[256];
             4    string szXml;
             5
             6    CString szFlashPath(m_FlashCtrl.GetModulePath());
             7    szFlashPath += "演示界面.swf";
             8
             9    m_FlashCtrl.LoadMovie(0, szFlashPath);
            10    MoveWindow(00490345);
            11    m_FlashCtrl.MoveWindow(00490345);
            12
            13    //設(shè)置標(biāo)題欄
            14    TiXmlElement xRoot("win_app");
            15    sprintf(szBuf, "%u"0xf0000006);
            16    xRoot.SetAttribute("style", szBuf);
            17    xRoot.SetAttribute("event"13);
            18
            19    TiXmlElement xItem("item");
            20    xItem.SetAttribute("title""我的測試程序");
            21    xRoot.InsertEndChild(xItem);
            22    szXml << xRoot;
            23    m_FlashCtrl.SetVariable("_root.g_Protocol.win_data", szXml.c_str());
            24
            25    //設(shè)置組合框的數(shù)據(jù)
            26    xRoot.Clear();
            27    szXml.clear();
            28    xRoot.SetAttribute("event"76);
            29
            30    TiXmlElement xQuery("query");
            31    xQuery.SetAttribute("sel_item"1);
            32    //xRoot.InsertEndChild(xQuery);
            33
            34    xItem.RemoveAttribute("title");
            35    xItem.SetAttribute("info""武林外傳");
            36    xQuery.InsertEndChild(xItem);
            37
            38    xItem.SetAttribute("info""西游記");
            39    xQuery.InsertEndChild(xItem);
            40
            41    xItem.SetAttribute("info""三國演義");
            42    xQuery.InsertEndChild(xItem);
            43
            44    xItem.SetAttribute("info""紅樓夢");
            45    xQuery.InsertEndChild(xItem);
            46
            47    xItem.SetAttribute("info""魔法英雄");
            48    xQuery.InsertEndChild(xItem);
            49    xRoot.InsertEndChild(xQuery);
            50
            51    szXml << xRoot;
            52     m_FlashCtrl.SetVariable("_root.g_Protocol.win_data", szXml.c_str());
            53
            54    //設(shè)置列表框數(shù)據(jù)
            55    xRoot.Clear();
            56    xQuery.Clear();
            57    szXml.clear();
            58    xRoot.SetAttribute("event"77);
            59    xQuery.SetAttribute("sel_item"1);
            60    
            61    xItem.SetAttribute("info""漢皇重色思傾國");
            62    xQuery.InsertEndChild(xItem);
            63
            64    xItem.SetAttribute("info""御宇多年求不得");
            65    xQuery.InsertEndChild(xItem);
            66
            67    xItem.SetAttribute("info""楊家有女初長成");
            68    xQuery.InsertEndChild(xItem);
            69
            70    xItem.SetAttribute("info""養(yǎng)在深閨人未識");
            71    xQuery.InsertEndChild(xItem);
            72
            73    xItem.SetAttribute("info""天生麗質(zhì)難自棄");
            74    xQuery.InsertEndChild(xItem);
            75
            76    xRoot.InsertEndChild(xQuery);
            77
            78    szXml << xRoot;
            79    m_FlashCtrl.SetVariable("_root.g_Protocol.win_data", szXml.c_str());
            5、在OnFsCommand()中處理FLASH發(fā)來的消息.
             1void CUIShowDlg::OnFsCommand(LPCTSTR command, LPCTSTR args)
             2{
             3    try
             4    {
             5        int nEvent = 0;
             6        TiXmlDocument xmlData;
             7        xmlData.Parse(command);
             8        if (xmlData.Error())
             9        {
            10            throw (__LINE__);
            11        }

            12
            13        TiXmlElement *pRoot = xmlData.FirstChildElement();
            14        if (NULL == pRoot)
            15        {
            16            throw (__LINE__);
            17        }

            18        pRoot->Attribute("event"&nEvent);
            19
            20        switch(nEvent)
            21        {
            22        case 0xff000000:            //移動(dòng)窗口消息
            23            SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0);
            24            break;
            25        case 0xff000001:            //關(guān)閉窗口
            26            EndDialog(0);
            27            break;
            28        case 0xff000003:            //最小化窗口
            29            ShowWindow(SW_MINIMIZE);
            30            break;
            31        default:
            32            break;
            33        }

            34    }

            35    catch ()
            36    {
            37        TRACE("\r\n收到無效的命令 : %s", command);    
            38    }

            39}

            40
            到此一款精美的軟件界面已經(jīng)開發(fā)完成。有興趣的朋友可以下載我的源代碼看看。
            /Files/beifangying/UIShow.rar

            posted on 2008-08-28 14:00 司強(qiáng) 閱讀(9654) 評論(34)  編輯 收藏 引用

            評論

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面[未登錄] 2008-08-28 14:17 代李

            不知道這種能否被推廣開來。。。。。。。。。。  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 14:38 司強(qiáng)

            當(dāng)然可以, 沒有什么不可能的...@代李
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 14:40 二二

            好東西,這樣界面做的就漂亮了..  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 14:51 司強(qiáng)

            謝謝, 這樣做界面可以節(jié)省不少時(shí)間而且不會出現(xiàn)什么斷言,異常之類的問題@二二
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 15:46 www.helpsoff.com.cn

            如何實(shí)現(xiàn)跨平臺?  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 17:13 true

            非常漂亮,可執(zhí)行文件的體積有多少?太大的話,就不適合做界面了  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 17:34 浪跡天涯

            界面很漂亮,不知Flash部分制作是否麻煩?  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 18:38 Bill Hsu

            太強(qiáng)了,
            就是速度不太強(qiáng)  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 19:46 RichardHe

            國外早就有公司做游戲的UI用FLASH..
            http://www.scaleform.com

            要錢的!
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面[未登錄] 2008-08-28 20:54 司強(qiáng)

            主要用于windows平臺...@www.helpsoff.com.cn
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 20:55 司強(qiáng)

            體積不大,你可以下載源代碼看看就知道了...@true
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 21:00 司強(qiáng)

            對于界面你根本看不到速度慢...@Bill Hsu
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-28 23:36 地方

            說實(shí)話,這個(gè)界面很惡俗…………  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-29 09:18 txw

            天晴數(shù)碼的游戲《魔域》,《機(jī)戰(zhàn)》的登錄界面都是Flash做的。非常漂亮。用Flash做界面真的很適用于游戲。c++只需處理業(yè)務(wù)邏輯,剩下的UI全部交給Flash,F(xiàn)lash也只需要寫些簡單的ActionScript腳本就夠了。  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-29 09:19 txw

            甚至可以把Flash視頻渲染到3D場景里,你可以想象一下邊玩游戲,邊看奧運(yùn)是多么舒服的事情。哈哈,扯遠(yuǎn)了。。。。  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-29 12:40 司強(qiáng)

            支持仁兄...@txw
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-29 23:26 大大

            教育網(wǎng)的“快門”就這這樣搞的  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-08-31 21:37 wx

            點(diǎn)擊右鍵出現(xiàn)什么菜單?  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-09-02 02:31

            那還不如全部用flash做算了!  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-09-03 10:05 biinwi

            界面能能放大縮小嗎?  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2008-09-05 16:08 cplayer

            如果能把兩者關(guān)系到轉(zhuǎn)過來還不錯(cuò)

            因?yàn)槲蚁M麍?zhí)行的是swf.

            如果這樣,就可以通過其他方式把數(shù)據(jù)處理放到c/c++程序,比如通過網(wǎng)絡(luò).  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2009-02-02 23:15 catasthophe

            司強(qiáng)兄這個(gè)方法不錯(cuò),試了下,想問一下程序窗口拖拽是怎么實(shí)現(xiàn)的,我試了很多鼠標(biāo)事件都沒成功,MOUSE_MOVE時(shí)間移動(dòng)了但是必須移動(dòng)著拖動(dòng)窗口''!,還往賜教  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2009-02-06 00:27 司強(qiáng)

            我的文章里有提到,就在這篇文章里。其實(shí)就是一條系統(tǒng)消息@catasthophe
              回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2009-04-14 17:01 DDGG

            非常棒!可以提供Flash源文件.fla看一下嗎?  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2009-05-10 17:07 kjb_A_A

            不知道對與swf文件有什么要求沒有,要是有fla源碼就更好了!謝謝!如果方便的話麻煩大哥發(fā)到“kjb098@163.com”不勝感激!  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2009-05-10 17:09 kjb_A_A

            順便問一下,要做成不規(guī)則界面怎么辦?背景不透明呀  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2009-08-26 09:50 unique

            為什么我的編譯失敗啊?
            UIShow.obj : error LNK2001: unresolved external symbol "public: __thiscall CUIShowDlg::CUIShowDlg(class CWnd *)" (??0CUIShowDlg@@QAE@PAVCWnd@@@Z)
            UIShow.obj : error LNK2001: unresolved external symbol "public: virtual __thiscall ShockwaveFlash::~ShockwaveFlash(void)" (??1ShockwaveFlash@@UAE@XZ)
            nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
            nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
            libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
            Debug/UIShow.exe : fatal error LNK1120: 5 unresolved externals  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面[未登錄] 2009-08-26 22:49 司強(qiáng)

            你的系統(tǒng)安裝FLASH插件了沒有??  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2010-05-05 11:19 QTM

            程序有點(diǎn)問題,主要是對事件捕獲上用的是有符號整數(shù)
            void CUIShowDlg::OnFsCommand(LPCTSTR command, LPCTSTR args)

            unsigned int nEvent = 0; 改為了unsigned
            同時(shí)修改代碼:

            double dEventTmp = 0;

            dEventTmp=atof(pRoot->Attribute("event"));
            nEvent=dEventTmp;  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面[未登錄] 2010-09-08 14:56

            非常的好~~  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2011-03-02 15:35 dddddddd

            henhaohaoha  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2011-05-15 10:48 王志海

            我現(xiàn)在的窗口移動(dòng)不能實(shí)現(xiàn)!因?yàn)椴恢繤LASH文件怎么處理的,請指點(diǎn)!  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2011-08-15 09:20 陳隆

            支持,頂一下  回復(fù)  更多評論   

            # re: 談VC++結(jié)合FLASH開發(fā)精美程序界面 2013-03-19 23:35 lhy__

            無法移動(dòng)窗口請改下代碼
            case 0xff000000: //移動(dòng)窗口消息
            ReleaseCapture();
            SendMessage(WM_SYSCOMMAND,SC_MOVE|HTCAPTION,0);
            //SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0);
            break;  回復(fù)  更多評論   


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            <2008年9月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(6)

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品这里热有精品| 久久久91人妻无码精品蜜桃HD| 亚洲欧美精品伊人久久| 中文字幕无码久久精品青草| 国产69精品久久久久99| aaa级精品久久久国产片| 久久这里只有精品18| 久久人人爽人人爽人人av东京热| 久久有码中文字幕| 久久激情亚洲精品无码?V| 国产成人无码精品久久久久免费 | 欧美精品一本久久男人的天堂| 久久综合给合久久狠狠狠97色| 久久精品国产亚洲av麻豆小说| 综合久久国产九一剧情麻豆| 亚洲国产精品成人久久| 国产免费久久精品99re丫y| 久久婷婷午色综合夜啪| 久久99精品久久久大学生| 久久久久亚洲av成人网人人软件| 久久人做人爽一区二区三区 | 久久久久久久亚洲Av无码| 国内精品久久久久久久97牛牛| 久久夜色精品国产噜噜麻豆| 久久亚洲AV成人无码国产| 国产Av激情久久无码天堂| 99久久精品无码一区二区毛片 | 久久综合九色综合网站| 亚洲国产精品久久久久久| 久久久久久噜噜精品免费直播| 亚洲а∨天堂久久精品9966| 国内精品综合久久久40p| 精品久久久久久无码中文字幕一区 | 97r久久精品国产99国产精| 99久久精品免费国产大片| 麻豆久久久9性大片| 精品人妻久久久久久888| 99久久国产主播综合精品| 漂亮人妻被中出中文字幕久久| .精品久久久麻豆国产精品| 精品久久人人爽天天玩人人妻|