Posted on 2009-09-11 16:54
亂78糟 閱讀(5061)
評(píng)論(6) 編輯 收藏 引用 所屬分類(lèi):
界面控件
最近因?yàn)樾枰玫揭粋€(gè)類(lèi)似V8那個(gè)標(biāo)簽tab控件,在網(wǎng)上搜索了下,發(fā)現(xiàn)沒(méi)有符合要求的,就只好自己動(dòng)手豐衣足食。
這個(gè)控件有點(diǎn)像V8和FireFox標(biāo)簽的集合體。

具體的請(qǐng)參看代碼vstab.h的描述,這里就不多廢話,下面簡(jiǎn)單講一下如何自繪。
第一步、我想要的功能? 明確自己將要繪制控件的功能是首要考慮的問(wèn)題,有的放矢方能百發(fā)百中。
第二步、從哪里開(kāi)始? 如果你想自己實(shí)現(xiàn)一整套UI類(lèi)(例如支持多風(fēng)格的界面庫(kù)),那么,從零開(kāi)始吧,MFC提供的大部分都不符合你的要求。如果僅僅繪制個(gè)別的,例如本例,具體從哪里繼承派生就看你的選擇。支持字體、顏色、進(jìn)度條、編輯框的列表你完全可以從CListCtrl派生,從CWnd派生就完全沒(méi)必要。如果要做一個(gè)類(lèi)似QQ的包含內(nèi)容十分豐富的好友列表,html,css,估計(jì)是少不了的。
第三步、用戶如何使用? 功能和起點(diǎn)都想好了,然后就是給用戶的接口。一個(gè)合乎用戶使用習(xí)慣的讓人一看就明白的接口名字是控件開(kāi)發(fā)者必須要仔細(xì)考慮的問(wèn)題,然后public、protect、private加上去,制約用戶的行為。用戶使用的時(shí)候不用考慮控件內(nèi)部是怎么實(shí)現(xiàn)的,你給我接口,我完成功能,各司其職。
第四步、拿起畫(huà)筆畫(huà)刷開(kāi)工 自繪是一門(mén)藝術(shù),記住這句話。
第五步、指導(dǎo)手冊(cè)?
沒(méi)必要提供如同msdn那樣詳細(xì)完整的手冊(cè)(除非你的控件接口內(nèi)容非常之多),若干個(gè)demo+code注釋足矣。
好了,廢話完了,源碼這里下載,如果有人有更好的代碼或發(fā)現(xiàn)BUG請(qǐng)告訴我,非常的感謝。