edit視窗是用來接收使用者輸入最常用的乙個控制項。
建立乙個輸入視窗可以使用成員函式:
bool cedit::create( lpctstr lpsztext, dword dwstyle, const rect& rect, cwnd* pparentwnd, uint nid = 0xffff );
其中dwstyle將指明該視窗的風格,除了子視窗常用的風格ws_child,ws_visible外,你可以針對輸入控制項指明專門的風格。 es_autohscroll,es_autovscroll 指明輸入文字超出顯示範圍時自動滾動。 es_center,es_left,es_right 指定對齊方式 es_multiline 是否允許多行輸入 es_password 是否為密碼輸入框,如果指明該風格則輸入的文字顯示為* es_readonly 是否為唯讀 es_uppercase,es_lowercase 顯示大寫/小寫字元 控制顯示的文字利用成員函式setwindowtext/getwindowtext用於設定/得到當前顯示的文字。 通過getlimittext/setlimittext可以得到/設定在輸入框中輸入的字元數量。
由於在輸入時使用者可能選擇某一段文字,所以通過void cedit::getsel( int& nstartchar, int& nendchar )得到使用者選擇的字元範圍,通過呼叫void cedit::setsel( int nstartchar, int nendchar, bool bnoscroll = false )可以設定當前選擇的文字範圍,如果指定nstartchar=0 nendchar=-1則表示選中所有的文字。void replacesel( lpctstr lpsznewtext, bool bcanundo = false )可以將選中的文字替換為指定的文字。 此外輸入框還有一些和剪貼簿有關的功能,void clear( );刪除選中的文字,void copy( );可將選中的文字送入剪貼簿,void paste( );將剪貼簿中內容插入到當前輸入框中游標位置,void cut( );相當於copy和clear結合使用。
最後介紹一下輸入框幾種常用的訊息對映巨集:
on_en_change 輸入框中文字更新後產生 on_en_errspace 輸入框無法分配記憶體時產生 on_en_killfocus / on_en_setfocus 在輸入框失去/得到輸入焦點時產生 使用以上幾種訊息對映的方法為定義原型如:afx_msg void memberfxn( );的函式,並且定義形式如on_notification( id, memberfxn )的訊息對映。如果在對話方塊中使用輸入框,class wizard會自動列出相關的訊息,並能自動產生訊息對映**。
可能涉及到的問題
1:如何判斷乙個字串是數字還是別的型別.
2:如何查詢乙個字串中某個符號出現的次數. 3:如何設定edit游標的位置.
1 問題的解決方法可以利用下面的方法解決. cstring strtemp=sztemp.spanincluding("0123456789"); if(!strtemp.isempty()) //這個字串為數字 else //非數字
2 問題我用迴圈遞迴的方法實現,首先查詢最先出現的符號位置,然後利用字串分割技術取right部分再進 行迴圈呼叫就可以了
,相關**可以見下:
int cnumeditctrl::getstringnum(cstring szval)//獲得字串中間.號的個數
return nnum; }
3 問題可以採用獲得edit控制項控制代碼傳送em_setsel訊息的方法實現. 所以基本**可以實現見下了:
VC 學習之 Edit只能輸入數字和小數點
有時候我們在edit框中需要對使用者的輸入進行限制,允許輸入數字和小數點。下面的 放在onenchangeedit 函式中,可實現此功能。如果只允許輸入正整數,那麼直接把空間的屬性 number 設為true就可以了,不需要在新增一下 cstring csareas getdlgitem idc e...
delphi裡面控制Edit只能輸入數字
如何在delphi裡面控制edit只能輸入數字 if not key in 0 9 8 then key 0 只能輸入漢字,而不能輸入數字或其他字元 在edit的onkeypress事件中 procedure tform1.edit1keypress sender tobject var key c...
JS輸入數字與小數
js判斷只能是數字和小數點 1.文字框只能輸入數字 小數點也不能輸入 2.只能輸入數字,能輸小數點.3.數字和小數點方法二 4.只能輸入字母和漢字 5.只能輸入英文本母和數字,不能輸入中文 6.只能輸入數字和英文chun 7.小數點後只能有最多兩位 數字,中文都可輸入 不能輸入字母和運算符號 57 ...