原始檔
編輯框是常用控制項之一,同時也是一種完全自實現較為繁瑣的控制項。本例實現了對編輯框的簡單的自繪製,在保留其自身的強大功能的前提下,實現了編輯框的邊框、背景、文字顏色以及禁用態的各種顏色的替換。
要想重繪,我們必須知道要繪什麼。通過觀察預設的編輯框我們可以很清楚的看到編輯框有三個最基礎的部分需要我們繪製,他們分別是3d邊框、背景和文字,再進一步分析我們會發現他們是乙個基本視窗的兩個部分,即客戶區和非客戶區。這樣一來我們就知道應該用什麼函式有針對性的繪製什麼區域了,由於提供了原始碼,這裡僅就基本原理和技術細節加以討論,不過多地羅列**。
為了繪製非客戶區,我過載了onncpaint函式,通過這個函式可以很輕鬆的去掉編輯框3d外觀,畫成我們自己想要的形式。至於客戶區,為了保留編輯框游標閃爍、字元處理、自動回行等功能,我並未過載onpaint函式。也就是說我並未重繪客戶區,而是選擇了乙個替代的辦法。
我們使用編輯框,用的就是它的文字編輯功能,而我們想要改變的只是文字及背景顏色。通過這種分析我們就會很清楚我們需要做的事情,那就是設定文字顏色和背景色。我用的方法是過載ctlcolor函式,在其中根據編輯框禁用和啟用的不同狀態,設定了不同的顏色,很好的實現了預期目的。
從嚴格意義上來說,我並沒有對編輯框重繪,只是簡單的繪製了邊緣,但同樣很好的實現預期的效果。當然這個例子還有許多的不盡人意的地方,如果大家有更好的方還希望我們一同交流。
自繪編輯框
原始檔編輯框是常用控制項之一,同時也是一種完全自實現較為繁瑣的控制項。本例實現了對編輯框的簡單的自繪製,在保留其自身的強大功能的前提下,實現了編輯框的邊框 背景 文字顏色以及禁用態的各種顏色的替換。要想重繪,我們必須知道要繪什麼。通過觀察預設的編輯框我們可以很清楚的看到編輯框有三個最基礎的部分需要我...
重繪編輯框CEdit 繼承CEdit方式
編輯框是常用控制項之一,同時也是一種完全自實現較為繁瑣的控制項。本例實現了對編輯框的簡單的自繪製,在保留其自身的強大功能的前提下,實現了編輯框的邊框 背景 文字顏色以及禁用態的各種顏色的替換。要想重繪,我們必須知道要繪什麼。通過觀察預設的編輯框我們可以很清楚的看到編輯框有三個最基礎的部分需要我們繪製...
MFC組合框 編輯框
getdlgitem idc enablewindow false 設定初始狀態,編輯框獲取資訊的方式 變數 m edit m edit.format 操作組合框的資料 1 由於組合框內包含了列表框,所以列表框的功能都能夠使用。如可以利用 int addstring lpctstr lpszitem...