• <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++可以作出漂亮的界面但要投入大量的人力和時間其代碼量可以用海量來形容。BUG自然也就不計其數(shù)。本文主要介紹如何采用VC++結(jié)合FLASH在短時間內(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解析庫。 本實例的開發(fā)環(huán)境為visual studio 2003 + FLASH8.0。其效果圖如下:



















            下面將進(jìn)行詳細(xì)介紹:
            1、首先建一個基于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:            //移動窗口消息
            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 司強 閱讀(9662) 評論(34)  編輯 收藏 引用

            評論

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

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

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

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

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

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

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

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

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

            如何實現(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

            太強了,
            就是速度不太強  回復(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 司強

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

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

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

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

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

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

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

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

            天晴數(shù)碼的游戲《魔域》,《機戰(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場景里,你可以想象一下邊玩游戲,邊看奧運是多么舒服的事情。哈哈,扯遠(yuǎn)了。。。。  回復(fù)  更多評論   

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

            支持仁兄...@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

            點擊右鍵出現(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)過來還不錯

            因為我希望執(zhí)行的是swf.

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

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

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

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

            我的文章里有提到,就在這篇文章里。其實就是一條系統(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 司強

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

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

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

            unsigned int nEvent = 0; 改為了unsigned
            同時修改代碼:

            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)在的窗口移動不能實現(xiàn)!因為不知道FLASH文件怎么處理的,請指點!  回復(fù)  更多評論   

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

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

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

            無法移動窗口請改下代碼
            case 0xff000000: //移動窗口消息
            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)計

            常用鏈接

            留言簿(6)

            隨筆檔案

            友情鏈接

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲精品乱码久久久久久| 国产成人精品久久二区二区| 人妻丰满?V无码久久不卡| 欧美久久一级内射wwwwww.| 色狠狠久久综合网| 99久久精品日本一区二区免费| 成人免费网站久久久| 久久精品18| 2020久久精品国产免费| 久久亚洲av无码精品浪潮| 奇米综合四色77777久久| 亚洲国产精品婷婷久久| 国内精品久久久久久久久电影网| WWW婷婷AV久久久影片| 中文精品99久久国产| 日本精品久久久久中文字幕8| 老男人久久青草av高清| 丁香五月综合久久激情| 久久久精品2019免费观看| 亚洲人成无码www久久久| 国产精品无码久久综合网| 老色鬼久久亚洲AV综合| 亚洲精品国产综合久久一线| 7国产欧美日韩综合天堂中文久久久久 | 国内精品综合久久久40p| 国产亚洲成人久久| 国产精品久久久亚洲| 精品国产乱码久久久久久人妻| 亚洲国产成人久久综合碰| 品成人欧美大片久久国产欧美...| 久久精品人人做人人爽97| 久久99久久99精品免视看动漫| 精品人妻伦九区久久AAA片69| 嫩草影院久久99| 99热热久久这里只有精品68| 国产精品美女久久久| 色成年激情久久综合| 久久久久久久99精品免费观看| 99久久国语露脸精品国产| 狠色狠色狠狠色综合久久| 日韩一区二区久久久久久|