MFC之編輯框Edit Control

2021-07-05 00:00:06 字數 1797 閱讀 6756

下面簡單介紹編輯框的部分通知訊息。

en_change:編輯框的內容被使用者改變了,與en_update 不同,該訊息是在編輯框顯示的正文被重新整理後才發出的

en_errspace: 編輯框控制項無法申請足夠的動態記憶體來滿足需要

en_hscroll: 使用者在水平滾動條上單擊滑鼠

en_killfocus: 編輯框失去輸入焦點

en_maxtext:輸入的字元超過了規定的最大字元數。在沒有es_autohscroll 或

es_autovscroll: 的編輯框中,當正文超出了編輯框的邊框時也會發出該訊息

en_setfocus: 編輯框獲得輸入焦點

en_update: 在編輯框準備顯示改變了的正文時傳送該訊息

en_vscroll: 使用者在垂直滾動條上單擊滑鼠

編輯框的建立

mfc為編輯框提供了cedit類。編輯框的所有操作都封裝到了cedit類中。

與靜態文字框的建立類似,除了可以在對話方塊模板上拖進乙個編輯框,然後關聯乙個變數或通過api函式使用,也可以在程式中動態建立編輯框,即呼叫cedit類的成員函式create。create成員函式的原型如下:

virtual bool create(

dword dwstyle,

const rect& rect,

cwnd* pparentwnd,

uint nid

);引數說明:

dwstyle:指定編輯框的風格。可以是msdn中「edit styles」包含風格的任意組合。下面是「edit styles」的所有風格說明。

es_autohscroll:當使用者在行尾鍵入乙個字元時,正文將自動向右滾動10 個字元,當使用者按回車鍵時,正文總是滾向左邊

es_autovscroll: 當使用者在最後乙個可見行按回車鍵時,正文向上滾動一頁

es_center: 在多行編輯框中使正文居中

es_left :左對齊正文

es_lowercase: 把使用者輸入的字母統統轉換成小寫字母

es_multiline:指定乙個多行編輯器。若多行編輯器不指定es_autohscroll 風格,則會自動換行,若不指定es_autovscroll,則多行編輯器會在視窗中正文裝滿時

發出警告聲響

es_nohidesel:預設時,當編輯框失去輸入焦點後會隱藏所選的正文,當獲得輸入焦點時又顯示出來。設定該風格可禁止這種預設行為

es_number :編輯框中只允許輸入數字

es_oemconvert:使編輯框中的正文可以在ansi 字符集和oem 字符集之間相互轉換。這在編輯框中包含檔名時是很有用的

es_password: 使所有鍵入的字元都用「*」來顯示

es_readonly: 將編輯框設定成唯讀的

es_right :右對齊正文

es_uppercase: 把使用者輸入的字母統統轉換成大寫字母

es_wantreturn:使多行編輯器接收回車鍵輸入並換行。如果不指定該風格,按回車鍵會選擇預設的命令按鈕,這往往會導致對話方塊的關閉

除了上面的風格外,編輯款一般還會設定ws_child、ws_visible、ws_border等視窗風格。另外,編輯框可以是多行的,也就是在編輯框中顯示多行文字,這就需要設定es_multiline風格,如果想要多行編輯框支援回車鍵,則還要設定es_wantreturn。

對於在對話方塊模板中建立的編輯框,它的屬性中包含了上述的風格,例如,multiline屬性對應的就是es_multiline風格,want return屬性對應es_wantreturn風格。

其他三個引數與靜態文字框的create函式的引數類似,就不介紹了。

MFC之編輯框

初始操作 新建mfc應用程式,專案名為editctrl,基於對話方塊。刪除原有控制項在右側工具箱中找到edit control。放置到視窗中。如圖 現在的編輯框只可以在一行輸入,無法換行,同時如果按下enter換行會直接退出程式。多行輸入 文字向上滾動 滾動條 1.多行輸入 右鍵屬性,找到multi...

MFC組合框 編輯框

getdlgitem idc enablewindow false 設定初始狀態,編輯框獲取資訊的方式 變數 m edit m edit.format 操作組合框的資料 1 由於組合框內包含了列表框,所以列表框的功能都能夠使用。如可以利用 int addstring lpctstr lpszitem...

MFC設定編輯框字型大小

1 首先,為edit控制項繫結乙個控制變數 m edit 2 然後,在對話方塊類中新增乙個成員變數cfont m ofont 注 此處必須是成員變數,不能是區域性變數。3 最後就是,利用setfont函式修改字型了,主要有兩種方式,可以在對話方塊的初始化函式oninitdialog中實現 1 法一 ...