• <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年12月>
            30123456
            78910111213
            14151617181920
            21222324252627
            28293031123
            45678910

            常用鏈接

            留言簿(66)

            隨筆分類

            隨筆檔案

            相冊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            国产综合精品久久亚洲| 久久精品国产亚洲一区二区三区| 国产精品久久婷婷六月丁香| 久久久久高潮综合影院| 国内精品久久久久久久97牛牛| 99久久婷婷国产综合精品草原 | 日本欧美久久久久免费播放网| 久久久久亚洲精品无码蜜桃| 88久久精品无码一区二区毛片 | 亚洲精品美女久久久久99小说| 久久国产色av免费看| 国产精品激情综合久久| 亚洲综合日韩久久成人AV| 狠狠久久综合| 亚洲国产成人久久综合一| 亚洲国产精品无码久久98| 久久精品亚洲福利| 青青青国产成人久久111网站| 2021国内精品久久久久久影院| 欧美亚洲另类久久综合| 无码人妻精品一区二区三区久久久 | 丁香久久婷婷国产午夜视频| 久久夜色精品国产噜噜亚洲a| 亚洲国产精品久久66| 久久香蕉国产线看观看精品yw| 久久久精品视频免费观看| 久久精品国产精品国产精品污| 亚洲国产精品成人久久| 久久久精品国产免大香伊| 亚洲精品久久久www| 亚洲精品无码久久毛片| 热综合一本伊人久久精品| 污污内射久久一区二区欧美日韩 | 性欧美丰满熟妇XXXX性久久久| 亚洲?V乱码久久精品蜜桃| 婷婷久久综合九色综合九七| 久久天天躁狠狠躁夜夜不卡| 内射无码专区久久亚洲| 久久久久亚洲av综合波多野结衣 | 精品久久久无码中文字幕天天| 亚洲国产成人久久精品动漫|