日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

emWin—数字软键盘

發布時間:2023/12/14 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 emWin—数字软键盘 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

emWin—數字軟鍵盤

emWin界面需要一個編輯框,要在一個編輯框輸入任意數字,原本打算通過設置按鈕,控制編輯框數字的加減來實現,只是這樣來實現任意數字的編輯,有點不方便,想著加一個數字軟鍵盤。

1.建一個鍵盤窗口

用GUIBuilder建兩個窗口,其中一個為主窗口,編輯框是主窗口中的一個控件,另一個作為鍵盤窗口(如下圖),設置需要的按鍵。

功能

  • 點擊編輯框,則彈出鍵盤窗
  • Esc-隱藏鍵盤窗
  • Backspace-消除編輯框數字
  • Enter-確定顯示輸入的數字

2.功能的實現

(1)鍵盤窗口禁止聚焦

首先得讓鍵盤窗口的按鍵禁止聚焦,通過BUTTON_SetFocussable(hItem, 0)函數來實現,于是,在點擊編輯框,彈出鍵盤窗后,焦點仍然會聚集在編輯框。我弄的這個數字鍵盤一共有13個按鍵。

int i; for(i=ID_BUTTON_0;i<=ID_BUTTON_12;i++) BUTTON_SetFocussable(WM_GetDialogItem(pMsg->hWin,i), 0);

(2)獲取按鍵的文本

在鍵盤窗口的回調函數中,當相應的按鍵按下,則獲取該按鍵的文本,用按鍵控件函數BUTTON_GetText()實現。定義一個數組buff[],來存儲按鍵的文本。

case ID_BUTTON_2: // Notifications sent by '1'switch(NCode) {case WM_NOTIFICATION_CLICKED:BUTTON_GetText(pMsg->hWinSrc,&buff[j],sizeof(buff));j++;break;case WM_NOTIFICATION_RELEASED:break;}break;

0~9對應的數字按鍵均如此。

(3)發送文本、刪除文本、退出窗口

①發送文本,使用GUI_SendKeyMsg()函數;(具體使用可以參考函數手冊)

case ID_BUTTON_12: // Notifications sent by 'Enter'switch(NCode) {case WM_NOTIFICATION_CLICKED:for(j=0;buff[j]!='\0';j++)GUI_SendKeyMsg(buff[j], 1);//1則表示按鍵被按下break;case WM_NOTIFICATION_RELEASEDbreak;}break;

②刪除文本,仍可使用GUI_SendKeyMsg()函數,參數參考手冊如下章節

其中,GUI_KEY_BACKSPACE即是在文本模式下,清除光標前面的一個字符,可使用GUI_SendKeyMsg(GUI_KEY_BACKSPACE, 1)清除編輯框的字符。

case ID_BUTTON_1: // Notifications sent by 'Backspace'switch(NCode) {case WM_NOTIFICATION_CLICKED:memset(buff,0,10); //清空數組 GUI_SendKeyMsg(GUI_KEY_BACKSPACE, 1);break;case WM_NOTIFICATION_RELEASED:break;}break;

我在Backspace對應按鍵回調函數下,清空數組buff,注意要添加頭文件#include “string.h”
③退出窗口

case ID_BUTTON_0: // Notifications sent by 'Esc'switch(NCode) {case WM_NOTIFICATION_CLICKED:WM_HideWindow(Layer[3]);break;case WM_NOTIFICATION_RELEASED:break;}break;

附圖:

總結

以上是生活随笔為你收集整理的emWin—数字软键盘的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。