自第一篇發(fā)布后,收到了不少建設(shè)性的意見,這里尤其感謝網(wǎng)友weolar、路人甲,他們在給我重要提示的同時(shí)讓我意識到自己的武斷。上篇我曾經(jīng)說過richedit是非常底層的實(shí)現(xiàn),其實(shí)我起初也不這么認(rèn)為,只是在Win2K泄漏代碼中能找到幾乎所有想要的內(nèi)容同時(shí)卻無法發(fā)現(xiàn)richedit半點(diǎn)蹤跡故形成這種判定。事實(shí)正如網(wǎng)友weolar、路人甲提及,richedit屬于應(yīng)用層的實(shí)現(xiàn),看過代碼之后感受到一種親切感,因?yàn)榇蠖鄶?shù)概念在我移植ie代碼的時(shí)候都曾見到過,只是當(dāng)初并未深入圖文編排細(xì)節(jié),僅著眼于渲染引擎。再次感謝這兩位網(wǎng)友,不是他們的幫助,我無法在短時(shí)間內(nèi)完成一個(gè)初步的具備完美特征的IM RichEdit實(shí)現(xiàn)。WinNT中的richedit應(yīng)該是1.0,現(xiàn)在普遍的是2.0,最近研究發(fā)現(xiàn)Win8中更多的暴露了TOM接口,如果采用那些接口,實(shí)現(xiàn)起來會(huì)更加簡單,這個(gè)后面我會(huì)提及。給我的感覺就是在實(shí)現(xiàn)一樣?xùn)|西的時(shí)候,誰都意識不到它會(huì)那么經(jīng)用,到后來發(fā)現(xiàn)擴(kuò)展性不夠的時(shí)候,升級起來卻并不是那么干脆了,顧及兼容性,只能在大版本更新的時(shí)候動(dòng)大手術(shù)。
在我實(shí)作的同時(shí),大量使用了搜索引擎和谷歌技術(shù)論壇。我沒有找到直接答案,然而各種撲朔迷離的線索總是恍恍惚惚帶著我走向最終的勝利,讓我再次體會(huì)到成功貴在堅(jiān)持不懈。在自認(rèn)為差不多滿意的時(shí)候,通過跟同事的探討,我橫下心繼續(xù)追求完美,相信自己做的不會(huì)比QQ的實(shí)現(xiàn)差。
目前完成了大綱中的高效動(dòng)畫實(shí)現(xiàn)部分,這部分耗時(shí)1周,另外加上前2周的工作之外時(shí)間的技術(shù)調(diào)用。接口基于IRichEditOle,也就是說只要符合RichEdit實(shí)現(xiàn)規(guī)范的都支持,包括窗口的和無窗口的。那什么是符合RichEdit實(shí)現(xiàn)規(guī)范呢,就是符合RichEdit窗口實(shí)現(xiàn)的方式,特指無窗口的RichEdit實(shí)現(xiàn)。你可能說我不知道如何實(shí)現(xiàn)無窗口的RichEdit,這個(gè)不要緊,我以后會(huì)做。后面的文章我會(huì)陸續(xù)把第一部分實(shí)現(xiàn)進(jìn)行詳細(xì)講解,同時(shí)實(shí)現(xiàn)第二部分。
效果圖:

示例工程下載
大綱如下:
高效動(dòng)畫實(shí)現(xiàn)
高效圖片管理
高效時(shí)鐘
動(dòng)畫控件
高效動(dòng)畫刷新
拖拽剪切粘貼支持
Process Monitor
QQ動(dòng)畫組件分析
ClipSpy
QQ的剪切板格式分析
IDataObject
Xml序列化反序列化
拖拽
粘貼
OLE擴(kuò)展
仿QQ新聞?wù)?br />
...
posted on 2012-06-14 22:49
萬連文 閱讀(2528)
評論(10) 編輯 收藏 引用 所屬分類:
richedit