• <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>
            萬星星@豌豆莢 歡迎加入我們
            一個吃軟飯的男人!!!!!我只想寫程序####
            微博:http://weibo.com/wanlianwen
            posts - 172,  comments - 1253,  trackbacks - 0

            忙和了很久,學到很多東西,2007過得還算充實,2008不知道是否可以逃過劫難,常常做惡夢,希望2008快快過去半年,哪時候是好是壞都有了結果。

            在2007年上半年,曾經看到過Yahoo的新版本Messager的界面,非常的個性化,這類異形窗口效果是傳統窗口所無法實現的。而異形窗口的實現一般有兩種方法:1、通過SetWindowRgn 2、UpdateLayeredWindow。第一種方法很通用,但是做出的效果不是非常絢麗,由于計算機表達Rgn的局限,做出的界面時常有毛刺而影響視覺效果。UpdateLayeredWindow只實用于32位帶alpha通道的圖片,由于Windows直接拿圖片與桌面進行疊加透明處理,所以窗口邊緣的毛刺一般可通過陰影消除掉。使用UpdateLayeredWindow后的窗口將不在響應WM_PAINT消息,這是一個非常棘手的問題,解決辦法是創建一個頂層窗口用來承載子界面,將Layered窗口置于其下并控制其位置。加之之前的界面庫,引入具有這樣特性的一類窗口也不是難事。

            當然我的實現思想也是采取UpdateLayeredWindow:首先創建一個32位的和窗口大小一致的位圖,然后貼png圖片,繪制窗口界面元素,最后進行窗口層更新,這樣就有了無窗口的一套界面解決方案。但是有時候,由于各種原因是需要常規Window的,所以還得把常規的窗口界面納入進來。

            有了思路就開始動手改造,下載其他的軟件研究,上網學習一些相關技術。用了兩天,基本移植進來,此次用了GDIPlus,也不管tmd跨不跨平臺了。
            界面描述:

            <?xml version="1.0" encoding="utf-8"?>
            <Window>
                
            <VerticalLayout>
                    
            <Canvas height="38" bgimage="\App\res\top.png">
                  
            <VerticalLayout>
                    
            <HorizontalLayout></HorizontalLayout>
                    
            <HorizontalLayout height="32">
                      
            <VerticalLayout></VerticalLayout>
                      
            <VerticalLayout width="61">
                        
            <ImageButton normalimg="\App\res\btclose1.png" hotimg="\App\res\btclose2.png" downimg="\App\res\btclose3.png" tooltip="Close" name="close"></ImageButton>
                      
            </VerticalLayout>
                      
            <VerticalLayout width="25"></VerticalLayout>
                    
            </HorizontalLayout>
                  
            </VerticalLayout>
                
            </Canvas>
                
            <Canvas bgimage="\App\res\mid.png"></Canvas>
                
            <Canvas height="25" bgimage="\App\res\bottom.png"></Canvas>
                
            </VerticalLayout>
            </Window>


            下面是截圖:






            至于所謂的磨砂效果,其實就是blur模糊。由于UpdateLayerWindow只允許你提供一個自己的位圖,之后會自動為你進行圖片合成,合成方法無法參與,故想實現blur恐怕要大廢一番力氣,很可能要拋棄這套流出而模擬出一套。

            下一步工作就是創建一個頂層窗口,跟隨這個漂亮的外殼移動了。之前的界面描述機制也自然可以進來了。

            exe下載
            posted on 2008-01-04 00:43 萬連文 閱讀(5893) 評論(10)  編輯 收藏 引用 所屬分類: 小作品

            FeedBack:
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-04 08:02 | <a href=http://minidx.com>minidxer</a>
            很漂亮  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-04 08:11 | seoul
            看了你新的作品, 覺得非常不錯, 其實一直關注你的界面開發, 覺得你應該把這些東西整理好, 形成一個開發庫,以供大家共享(付費也是不錯的方式), 如果能夠形成跨平臺的, 那是更好了, 成熟的商業庫如QT等, 都是不錯的方向. 商業錢景也是不錯的.  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-04 09:31 | <a href=http://minidx.com>minidxer</a>
            純粹的界面開發包商業化很難的
            包括QT在內的“錢景”并不樂觀  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-04 10:08 | tip
            以前也考慮過,這個頂層窗口應該是跟背景窗口分離的吧,實現起來還是有點難度  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-04 10:59 | 萬連文
            其實一直在學習,整理中。所以進度很慢,為了保證東西的完美以及解決方案的完備性,商業化考慮很少,只是追求技術上的優美以及內在的積累。有時候真的很羨慕美國的程序員,為了興趣寫程序。其實前景還是錢景,談論沒有意義,存在的就是合理的。對于跨平臺,我是厭倦了,linux天生就做服務器挺好的,那個世界的人追求的是鍵盤的快感。


            其實做出這樣效果的窗口不難,關鍵是之后的界面元素的實現機制。  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-04 13:46 | 安帛偉
            效果挺棒的,可惜沒有源碼 :P  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-06 21:04 | 小笨象
            http://www.9ele.com/bbs/a/a.asp?B=400&ID=39
            看看。也許大家會有點體會。  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-01-06 22:12 | 萬連文
            看了這種方法,不過是自己去模擬ms的UpdateLayerWindow,這種做法,邊上的毛刺消除不了。  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-04-25 13:53 | 群挑王
            謝謝博主,我剛開始學做界面,受益匪淺哈  回復  更多評論
              
            # re: 界面庫納入新的窗口風格(Vista)
            2008-09-10 09:51 | Daniel King
            用了UpdateLayerWindow后窗口里的控件用不了了,連自繪都沒法用了
            好像是不響應WM_PAINT
            如果是個按鈕還能解決,如果是文本框不就麻煩了?

            請問博主如何處理的?  回復  更多評論
              
            簡歷下載
            聯系我

            <2008年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(66)

            隨筆分類

            隨筆檔案

            相冊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久国产精品99精品国产| 国内精品久久久久影院优 | 久久无码人妻一区二区三区午夜| 久久电影网一区| 久久精品国产一区二区电影| 久久综合给合久久狠狠狠97色| 久久国产成人| 一个色综合久久| 午夜不卡久久精品无码免费| 无码精品久久一区二区三区| 热久久这里只有精品| 久久久久女人精品毛片| 国内精品久久久久影院老司| 日韩一区二区久久久久久| 久久九九青青国产精品| 国产精品成人精品久久久 | 久久这里只有精品视频99| 欧美伊香蕉久久综合类网站| 亚洲国产精品无码久久| 国内精品伊人久久久久777| 亚洲一级Av无码毛片久久精品| 色婷婷综合久久久久中文| 亚洲欧美久久久久9999| 狠狠综合久久综合中文88| 狠狠干狠狠久久| 精品久久香蕉国产线看观看亚洲| 青青草原精品99久久精品66| 国产精品久久久香蕉| 亚洲人成无码www久久久| 一级做a爰片久久毛片看看| 久久影视国产亚洲| 九九99精品久久久久久| 色综合久久精品中文字幕首页| 狠狠色丁香婷婷综合久久来| 人人狠狠综合久久亚洲婷婷| 伊人久久综合热线大杳蕉下载| 国产高清美女一级a毛片久久w| 99久久国产综合精品成人影院| 天天综合久久久网| 亚洲国产精品无码久久久蜜芽| 精品久久久久久国产潘金莲|