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

            Jcily

             

            可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn)

             

            目前完成了百分之50

             

                重復(fù)發(fā)明輪子是一件勞命傷財(cái)?shù)氖虑椋绻荒軒?lái)立竿見(jiàn)影的經(jīng)濟(jì)價(jià)值,特別是在為公司工作時(shí),相信不會(huì)有人去重復(fù)做一些別人已經(jīng)做過(guò)的事情。但是總有一些人會(huì)情愿花費(fèi)時(shí)間或者金錢去自己造一次輪子,只能說(shuō),人的欲望很多,這是其中一種欲望的體現(xiàn)。

                很久以前和很長(zhǎng)一段的業(yè)余時(shí)間里,我一直在自己模仿CorelDraw以及AutoCAD的繪圖功能,大部分繪圖編輯操作的實(shí)現(xiàn)都有比較能夠猜出其實(shí)現(xiàn)思路或者是模擬實(shí)現(xiàn)的方法,并實(shí)現(xiàn)了一部分。其間我記憶比較深刻的難點(diǎn)就是"所見(jiàn)即所得的文字輸入"功能,起初的方案是使用RichEdit,將該控件透明化后貼在編輯視圖區(qū)域來(lái)進(jìn)行文字輸入,這個(gè)辦法還不錯(cuò),并且WIN32平臺(tái)下大多數(shù)圖形編輯軟件都是這么做,比如畫(huà)圖,visio等。

                但是后來(lái)我發(fā)現(xiàn)CorelDraw確實(shí)太COOL了,其WYSWYG的文字輸入的過(guò)程也是可以旋轉(zhuǎn)的,這里我不想跟你以及我自己爭(zhēng)論這個(gè)特性的實(shí)用性和必要性,因?yàn)榇蠹野ㄎ易约憾紩?huì)認(rèn)為在正常的平行輸入后再旋轉(zhuǎn)文字最終顯示結(jié)果是一樣,但我仍然覺(jué)得這個(gè)特性是一個(gè)很重要細(xì)節(jié),雖然其最終編輯的結(jié)果是一樣,但很顯然編輯的過(guò)程完全是不同的體驗(yàn)(不僅僅是耍酷),這是可重入的真正的WYSWYG,因?yàn)橛脩粝麓涡薷奈淖秩匀豢梢栽诂F(xiàn)有角度WYSWYG的進(jìn)行。

                啰嗦了,有時(shí)候我是很偏執(zhí),以至于浪費(fèi)很多時(shí)間,不過(guò)這個(gè)過(guò)程我很享受,就和打游戲類似。

             

                這里說(shuō)一下實(shí)現(xiàn)的思路:重復(fù)發(fā)明一個(gè)輪子,這樣你就擁有最易掌控度的改裝能力。

            posted on 2010-08-10 02:26 Jcily 閱讀(3061) 評(píng)論(14)  編輯 收藏 引用

            評(píng)論

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-10 08:39 路青飛

            支持你!
            貌似跟我性格相似!
            內(nèi)心比較糾結(jié),不知是好是壞~  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-10 10:16 小發(fā)

            很想看看執(zhí)行效果  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-10 12:29 陳梓瀚(vczh)

            繪制有api支持,輸入的話你要響應(yīng)IME_*消息來(lái)獲取平滑的顯示。如果不太關(guān)心輸入的時(shí)候的顯示質(zhì)量的話,可以響應(yīng)WM_CHAR。你唯一要做的就是跟蹤光標(biāo),然后調(diào)整輸入法窗口的位置。

            不過(guò)想模擬一個(gè)文本框還是很麻煩的,我曾經(jīng)自己實(shí)現(xiàn)過(guò)一個(gè)比TextBox高效很多(特別是在加載幾百M(fèi)文本的時(shí)候)的文本框,真TM痛苦……drag and drop也要1000多行的COM才能搞定- -b那個(gè)API太囧了。  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-10 16:39 疑問(wèn)

            旋轉(zhuǎn)坐標(biāo)系不就成了么?  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-10 17:50 陳梓瀚(vczh)

            @疑問(wèn)
            GDI沒(méi)有這個(gè)功能  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) [未登錄](méi) 2010-08-10 19:09 by

            實(shí)現(xiàn)一個(gè)擁有抽象繪制接口的TEXTBOX。
            實(shí)現(xiàn)一個(gè)可旋轉(zhuǎn)坐標(biāo)系的繪制接口。
            嗯,成了。
              回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) [未登錄](méi) 2010-08-10 19:50 Jcily

            @陳梓瀚(vczh)
            說(shuō)得很透徹,這些古老的細(xì)節(jié)特性在實(shí)現(xiàn)的過(guò)程中相當(dāng)搞人  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) [未登錄](méi) 2010-08-10 19:52 Jcily

            @by
            這里我沒(méi)有嘗試旋轉(zhuǎn)坐標(biāo)系,想來(lái)Caret這個(gè)系統(tǒng)資源可能在旋轉(zhuǎn)后也不能跟著用戶態(tài)的繪制DC變化吧。  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-11 11:15 陳梓瀚(vczh)

            @Jcily
            繪制平直的橢圓跟繪制傾斜的橢圓的算法是完全不同的- -b這就是為什么GDI不提供,GDI+又那么慢……  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) [未登錄](méi) 2010-08-11 23:59 Jcily

            @陳梓瀚(vczh)
            這個(gè)其實(shí)無(wú)所謂,對(duì)于GDI和GDI+來(lái)說(shuō)他們畫(huà)圓畫(huà)弧都是轉(zhuǎn)化成貝塞爾曲線來(lái)畫(huà)的,所以旋轉(zhuǎn)效果圖是可以。但是面向的僅僅是“結(jié)果圖”,而對(duì)于編輯的實(shí)現(xiàn)講究的是動(dòng)態(tài)呈現(xiàn)(渲染),然而GDI,GDI+并沒(méi)有如OpenGL和DirectX的強(qiáng)大高效的坐標(biāo)空間變換,因此這里沒(méi)有使用此辦法。曾有個(gè)CSDN網(wǎng)友說(shuō)過(guò)WPF可以實(shí)現(xiàn)實(shí)時(shí)的三維角度的旋轉(zhuǎn)的文字輸入,其原理就是有DX支持。不過(guò)WPF貌似離我的應(yīng)用還比較遠(yuǎn)。  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-12 09:20 hoodlum1980

            Photoshop也有這個(gè)功能呀,ps可以讓文字沿著一條路徑編輯。光標(biāo)的方向是跟著路徑走的。。  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) [未登錄](méi) 2010-08-12 10:28 Jcily

            @hoodlum1980
            是的,我也準(zhǔn)備同時(shí)實(shí)現(xiàn)這個(gè)  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) 2010-08-13 00:53 陳梓瀚(vczh)

            @Jcily
            GDI+有強(qiáng)大的坐標(biāo)和效果功能,只是GDI沒(méi)有,不要混為一談。  回復(fù)  更多評(píng)論   

            # re: 可旋轉(zhuǎn)的文字輸入實(shí)現(xiàn) [未登錄](méi) 2010-08-13 09:55 Jcily

            @陳梓瀚(vczh)
            GDI有的,只是相關(guān)函數(shù)來(lái)得不如GDI+溫柔,首先你的SetGraphicsMode到高級(jí)模式(GM_ADVANCED),接著需要你自己計(jì)算一個(gè)XFORM結(jié)構(gòu)的二維矩陣丟給它hdc,GDI+變換坐標(biāo)系就直接有自己Graphics下的Translate,rotate等提供。只是GDI的這個(gè)特性很少有基礎(chǔ)教程提及,應(yīng)用的也不多。  回復(fù)  更多評(píng)論   


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


            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊(cè)

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲精品tv久久久久久久久| 国产精品久久久久久久app| 婷婷综合久久中文字幕蜜桃三电影| 色综合久久天天综线观看| 婷婷久久精品国产| 国产aⅴ激情无码久久| 久久精品国产亚洲AV香蕉| 久久久精品人妻一区二区三区蜜桃| 久久国产热精品波多野结衣AV| 99久久免费国产特黄| 久久人人爽人人爽人人片AV麻豆 | 久久人人爽爽爽人久久久| 热re99久久6国产精品免费| 久久综合丁香激情久久| 亚洲精品成人久久久| 国产91色综合久久免费| 久久久久亚洲AV成人网| 亚洲欧美成人综合久久久| 久久精品国内一区二区三区| 久久综合成人网| 99久久中文字幕| 久久无码高潮喷水| 超级碰久久免费公开视频| 久久天堂AV综合合色蜜桃网| 日本高清无卡码一区二区久久| 99久久婷婷免费国产综合精品| 久久国产欧美日韩精品免费| 91精品国产91热久久久久福利| 亚洲伊人久久大香线蕉综合图片 | 久久精品国产亚洲AV影院| 国产精品欧美久久久久无广告| 亚洲精品tv久久久久久久久 | 久久精品免费网站网| 久久99精品久久久久婷婷| 国产成人无码精品久久久性色| 精品人妻伦九区久久AAA片69| 久久久久久a亚洲欧洲aⅴ| 久久棈精品久久久久久噜噜| 国产香蕉久久精品综合网| 手机看片久久高清国产日韩| 久久午夜综合久久|