程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Edit Box

Edit Box

編輯:關於C語言

 

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. 下一頁:
Copyright © 程式師世界 All Rights Reserved