MFC DLEdit 設計屬於自己的編輯框

2021-09-06 04:54:22 字數 1584 閱讀 4119

無意間看到了大牛們寫的自定義編輯框控制項,於是找了個時間自己寫了乙個,加深了對mfc訊息機制和一些功能的了解。

在巨集的最後都有reflect字眼,就是對映的意思。以on_control_reflect為例,mfc中定義如下:

#define on_wm_ctlcolor_reflect() \

,

有這種對映,就把wm_ctlcolor和ctlcolor函式在控制項類裡對應起來了。在主視窗中新增wm_ctlcolor訊息響應函式,裡面有我們很熟悉的一句話:

hbrush hbr = cdialog::onctlcolor(pdc, pwnd, nctlcolor);

這一句就是根據子視窗(或者子控制項,nctlcolor來指定)是否有ctlcolor,來決定是否執行子視窗的ctlcolor,不信你可以一步一步除錯下去。

說明: 在編輯框的ctlcolor函式中,pdc->setbkcolor(clr),的clr是指文字顏色的背景色,而ctlcolor函式的返回值是編輯框的畫刷控制代碼(return hbr),所以,如果你不能保證clr和返回畫刷的顏色一致,那麼編輯框就會出現兩種顏色,上面是文字的背景色,而下面是編輯框的背景色,兩者是不同的。

邊框框條就不同,接著有灰色字型提示輸入。

具備輸入焦點後,底色改變。

具備輸入焦點後,字型變粗。

具備輸入焦點後,有陰影。總之上面四個編輯框比起下面的兩個會更個性化。

還有很多的功能可以自定義,比如自定義背景圖案等等,拋磚引玉,拋磚引玉。如果大家有好建議,歡迎拍磚討論。看了網上大牛們的**,有「圓角編輯框」的功能,這只要將**中的pdc->rectangle(rct)變pdc->roundrect(..)就可以了。

看著自己也能寫出這樣的東西,還是有點欣慰的。有著大牛們的引導,相信很多的東西都可以輕車熟路。我認為,學習最忌諱的就是走彎路,在看似時髦但又百無聊賴的技術上浪費大量的時間,基礎課程很重要,這才是一成不變的東西,學有餘力可以接觸具體的技術。有乙個疑問,不知道花時間在諸如這些雞毛蒜皮的技術上,到以後會不會產生價值,我會不會在浪費時間?

搗亂小子  2023年2月4日星期六

出處:

選擇屬於自己的ERP

太平洋三威公司 pacific sunwear 通過建立乙個特別的erp系統,成長為擁有1000家連鎖分店的零售商。早在1994年,擁有90家分店的加利福尼亞太平洋三威公司 以下簡稱太平洋三威 在美國西海岸就已頗具影響。隨後該公司進行了大規模的拓展,現在該公司計畫在未來3年裡再增加300家分店,到2...

寫屬於自己的部落格

以前一直想寫部落格,只是因為覺得太浪費時間,所以一直擱置,大學畢業一月半以後,我覺得應該寫寫部落格,一來可以整理一下大學四年來的學習經歷,二來也可以記錄以後的工作經歷。本人上學路程比較坎坷,以至於畢業以後年齡相對來說比較年長一些,所以我決定放棄考研,在以後的工作中鍛鍊自己,是金子在 都會發光。我經常...

打造屬於自己的Vim IDE

troubleshootings further reading references 為什麼要使用vim?讓我們先看看其他人怎麼說 vim or emacs就好比倚天和屠龍,得一可得天下。vim就像學鋼琴一樣,一旦學會,終身受益無窮。這些話都是出自vim高手之口,對於vim新手,可能暫時沒辦法體會...