CEdit 控制鍵盤操作

2022-03-11 09:13:16 字數 994 閱讀 2081

寫在前面的話:在工作中要實現這樣乙個功能,在乙個樹形控制項中選擇要傳送訊息的客戶,新增到乙個列表控制項中,點選確定跳到乙個資訊傳送頁面如下圖,在傳送人編輯框中顯示選擇的客戶,要實現的就是即允許使用者刪除使用者列表中的使用者,但是又不能讓使用者只刪除乙個使用者標識的一部分,所以要對鍵盤操作進行控制。

實現對鍵盤的控制,在網上搜了一下有兩種方法,過載pretranslatemessage()函式,或者新增onkeddown事件處理函式,我選擇的是第一種。**如下:

1

//控制編輯框刪除使用者

2 bool sendmsgdlg::pretranslatemessage(msg*pmsg)316

17cstring strold, strtemp;

18m_editclients.getwindowtextw(strold);

1920

if(strold.getat(charindex - 1) == _t(';'

))21

35else

3639}40

}4142return

cdialogex::pretranslatemessage(pmsg);

43 }

對**稍微解釋一下:

第5行**是判斷事件是否是發生在cedit控制項中的按鍵事件

第7行**是判斷按下的鍵是否是刪除鍵,如果不是則返回true,表示這個按鍵訊息不做處理。

其中9-11行**是獲取游標所在處的字元在cedit控制項值字串中位置。

第17-32行**是對字串做處理,我的做法是尋找到『;』號之間的字串,並將之替換為空字串,相當於刪除它。

第25-26行**是傳送乙個訊息,告訴系統刪除了乙個使用者,需要同步記憶體中的使用者列表。

第33行**是設定游標的位置。使用cedit控制項的setsel()函式。

這樣這個小功能就實現了,即如果在cedit控制項中刪除字元,只有遇到的是分號時才能刪除,並且刪除從當前分號到前面乙個分號之間所有的字元,如果刪除的不是分號,則不能刪除。

iPhone控制鍵盤

有時候當鍵盤彈出時會把輸入框蓋住,這時候我們就沒法看到自己到底輸入的是什麼了,這時候我們就需要註冊兩個事件,那就是在鍵盤顯示的時候 把輸入框的位置放在可見的地方 當關閉鍵盤時,在將輸入框還原,以下就是解決問題的具體方法,我們只要註冊就可以了 call this method somewhere in...

控制鍵盤的輸入

1 新建乙個工具類 import class keyboardtool typedefenum keyboardtoolbuttontype pragma mark 定義協議 protocol keyboardtooldelegate void keyboardtool keyboardtool k...

十八 用GUI自動化控制鍵盤和滑鼠

關於 python程式設計快速上手 讓繁瑣工作自動化 的學習筆記 windows上使用pip install pyautogui安裝 import pyautogui pyautogui.pause 1 pyautogui.failsafe true這裡匯入pyautogui並將pyautogui....