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

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