2011年6月17日
摘要: AVLTree的一個(gè)C++類簡(jiǎn)單實(shí)現(xiàn)
閱讀全文
2011年4月24日
摘要: 這次我們將要給Widget增加一些狀態(tài),并使其能夠接受出消息處理擴(kuò)展,測(cè)試工程中實(shí)現(xiàn)了一個(gè)按鈕的消息處理擴(kuò)展。 當(dāng)然,這次的內(nèi)容非常多,包括坐標(biāo)映射、區(qū)域映射,捕獲鼠標(biāo)的控件、活動(dòng)控件、焦點(diǎn)控件等概念都未提到,但在代碼中還是能夠看到這些概念的。如果一一介紹,那文章就會(huì)非常冗長(zhǎng),也會(huì)使Widget實(shí)現(xiàn)進(jìn)展緩慢,因此我通常都會(huì)省略一些內(nèi)容,這些內(nèi)容也就只能通過代碼閱讀來得到了。
閱讀全文
2011年4月19日
摘要: 模擬控件項(xiàng)目已經(jīng)進(jìn)行到一定的程度了,我們得給它來個(gè)重構(gòu),修改部分BUG且讓它更合理一些。這次重構(gòu)我們產(chǎn)生了新的概念,也刪除了一些老的概念;有新的類產(chǎn)生,也有老的類消亡;有解耦,也有融合。
閱讀全文
2011年4月12日
摘要: Widget即將具備可擴(kuò)展性,我們抽象了一個(gè)叫做“對(duì)象關(guān)系”的概念來輔助Widget擴(kuò)展。我們將Widget的子控件布局作為一個(gè)可擴(kuò)展點(diǎn),并建立了一個(gè)“邊緣式布局子控件”用于測(cè)試。
閱讀全文
2011年4月9日
摘要: 控件體系基本雛形已經(jīng)形成,首次能夠直觀的看到我們控件了。控件樹、控件區(qū)域、控件繪制,這些就是這次的內(nèi)容。
閱讀全文
2011年4月7日
摘要: 既然有些實(shí)現(xiàn)對(duì)于用戶來說是透明的,那么我們就將他們隱藏。這里提出了兩種方案,我們進(jìn)行了對(duì)比并選擇了其中一種方案來執(zhí)行,隱藏一些類之后我們便可以簡(jiǎn)化之前的生命周期依賴了——即通過暴露在外的對(duì)象來管理被隱藏的實(shí)現(xiàn)對(duì)象,這樣減少了對(duì)象之間的交叉管理。
閱讀全文
2011年4月6日
摘要: 我們最終要實(shí)現(xiàn)的是Widget,驅(qū)動(dòng)、過濾器等等都是它的必要實(shí)現(xiàn),但這和用戶毫無關(guān)系。窗口、驅(qū)動(dòng)、根控件之間有著一一對(duì)應(yīng)的關(guān)系,那么他們的生命周期也是相互依賴的,看這里如何管理他們的生命周期。
閱讀全文
2011年4月3日
摘要: thunk已經(jīng)準(zhǔn)備就緒,我們可以開始實(shí)現(xiàn)控件驅(qū)動(dòng)了。驅(qū)動(dòng)的職責(zé)很簡(jiǎn)單,負(fù)責(zé)關(guān)聯(lián)容器窗口并將消息交由過濾器處理。在測(cè)試工程代碼中,我們可以在調(diào)試的輸出視圖中看到容器窗口消息流入消息過濾器的情況。
閱讀全文
摘要: 抽象控件需要由消息來驅(qū)動(dòng),那么我們就必須要截獲其容器窗口的消息。這次的內(nèi)容就是通過thunk來子類化容器窗口以截獲其消息。
閱讀全文
摘要: 整個(gè)系列是通過一步一步的分析和設(shè)計(jì),最終實(shí)現(xiàn)一套windows窗口中抽象模擬控件的內(nèi)核。對(duì)抽象模擬控件和概述及其消息驅(qū)動(dòng)的設(shè)計(jì)便是這次的內(nèi)容。
閱讀全文