
成为使用对话框的数字输入软键盘. 只需在需要键盘的地方使用创建对话框功能创建它
GUI_CreateDialogBox(_aDialogCreate_kb,GUI_COUNTOF(_aDialogCreate_kb)和_cbCallback_kb,0、0、0);
该函数中使用的BVtxt和BVtxt_temp以及格式检查函数NumCheck可以自行定义.
级别是有限的,工作比较粗糙. 我会用它. 我有时间研究和修改它.
/ ************************************************** **** ***********************
*
*对话框资源键盘
*
*此表包含创建对话框所需的信息.
*它是由ucGUIbuilder创建的.
* /
静态const GUI_WIDGET_CREATE_INFO _aDialogCreate_kb [] = {
{FRAMEWIN_CreateIndirect,“设置”,0,0,0,240,320,0,0},
{BUTTON_CreateIndirect,“ 0”,GUI_ID_BUTTON0,96,240,40,40,0,0},
{BUTTON_CreateIndirect,“ 1”,GUI_ID_BUTTON1,32,102,40,40,0,0},
{BUTTON_CreateIndirect,“ 2”,GUI_ID_BUTTON2,96,102,40,40,0,0},
{BUTTON_CreateIndirect,“ 3”,GUI_ID_BUTTON3,157,102,40,40,0,0},
{BUTTON_CreateIndirect,“ 4”,GUI_ID_BUTTON4,32,148,40,40,0,0},
{BUTTON_CreateIndirect,“ 5”,GUI_ID_BUTTON5,96,148,40,40,0,0},
{BUTTON_CreateIndirect,“ 6”,GUI_ID_BUTTON6,157,148,40,40,0,0},
{BUTTON_CreateIndirect,“ 7”,GUI_ID_BUTTON7,32,194,40,40,0,0},
{BUTTON_CreateIndirect,“ 8”,GUI_ID_BUTTON8,96,194,40,40,0,0},
{BUTTON_CreateIndirect,“ 9”,GUI_ID_BUTTON9,157,194,40,40,0,0},
{BUTTON_CreateIndirect,“确定”,GUI_ID_OK,32,240,40,40,0,0},
{BUTTON_CreateIndirect,“取消”,GUI_ID_CANCEL,157,240,40、40、0,0},
{EDIT_CreateIndirect,NULL,GUI_ID_EDIT0,17,31,193,32,0,0},
{BUTTON_CreateIndirect,“'”,GUI_ID_BUTTON10,96,70,40,26,0,0},
{BUTTON_CreateIndirect,“删除”,GUI_ID_BUTTON11,157,71,40,25,0,0}
};
/ ************************************************** **** *******************
** FunctionName: void PaintDialog(WM_MESSAGE * pMsg)
**功能: 初始化对话框项
**
**在_cbCallback-> WM_PAINT中调用此函数
*********************************************** ****************** /
void PaintDialog_kb(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg-> hWin;
}
/ ************************************************** **** *******************
** FunctionName: void InitDialog(WM_MESSAGE * pMsg)

**功能: 初始化对话框项
**
**在_cbCallback-> WM_INIT_DIALOG中调用此函数
*********************************************** ****************** /
void InitDialog_kb(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg-> hWin;
//
// FRAMWIN
//
FRAMEWIN_SetTitleHeight(hWin,16);
FRAMEWIN_SetFont(hWin和GUI_FontHZ16);
//
// GUI_ID_BUTTON0
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON1
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON1)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON2
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON2)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON3
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON3)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON4
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON4)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON5
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON5)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON6
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON6)和GUI_Font24B_ASCII);
//

// GUI_ID_BUTTON7
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON7)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON8
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON8)&GUI_Font24B_ASCII);
//
// GUI_ID_BUTTON9
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON9)&GUI_Font24B_ASCII);
//
// GUI_ID_EDIT0
//
EDIT_SetFont(WM_GetDialogItem(hWin,GUI_ID_EDIT0)&GUI_Font24_ASCII);
// EDIT_SetValue(WM_GetDialogItem(hWin,GUI_ID_EDIT0),0);
EDIT_SetMaxLen(WM_GetDialogItem(hWin,GUI_ID_EDIT0),9);
// EDIT_SetDecMode(WM_GetDialogItem(hWin,GUI_ID_EDIT0),0,0,999.9999,4,0);
//
// GUI_ID_BUTTON12
//
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON10)&GUI_Font24B_ASCII);
}
/ ************************************************** **** ***********************
*
*对话框回调例程
* /
静态无效_cbCallback_kb(WM_MESSAGE * pMsg)
{
int NCode,ID;
WM_HWIN hWin = pMsg-> hWin;
开关(pMsg-> MsgId)
{
案例WM_PAINT:
PaintDialog_kb(pMsg);
休息;
案例WM_INIT_DIALOG:
InitDialog_kb(pMsg);
休息;
案例WM_KEY:
开关((((WM_KEY_INFO *)(pMsg-> Data.p))->键)

{
案例GUI_KEY_ESCAPE:
GUI_EndDialog(hWin,1);
休息;
案例GUI_KEY_ENTER:
GUI_EndDialog(hWin,0);
休息;
}
休息;
案例WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg-> hWinSrc);
NCode = pMsg-> Data.v;
开关(NCode)
{
caseWM_NOTIFICATION_RELEASED:
开关(编号)
{
案例GUI_ID_OK:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'\ 0');
EDIT_GetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0),BVtxt_temp,9);
如果(NumCheck(BVtxt_temp,NumStyle_Flag))
{strcpy(BVtxt,BVtxt_temp);
GUI_EndDialog(hWin,0);
休息;
}
GUI_MessageBox(“按右数字”,“警告!!”,0);
休息;
案例GUI_ID_CANCEL:
GUI_EndDialog(hWin,0);
休息;
案例GUI_ID_BUTTON0:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'0');
休息;
案例GUI_ID_BUTTON1:
EDIT_AddKey(WM_GetDialogItem(hWin触摸屏软键盘,GUI_ID_EDIT0),'1');
休息;
案例GUI_ID_BUTTON2:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'2');
休息;
案例GUI_ID_BUTTON3:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'3');

休息;
案例GUI_ID_BUTTON4:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'4');
休息;
案例GUI_ID_BUTTON5:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'5');
休息;
案例GUI_ID_BUTTON6:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'6');
休息;
案例GUI_ID_BUTTON7:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'7');
休息;
案例GUI_ID_BUTTON8:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'8');
休息;
案例GUI_ID_BUTTON9:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0)触摸屏软键盘,'9');
休息;
案例GUI_ID_BUTTON10:
EDIT_AddKey(WM_GetDialogItem(hWin,GUI_ID_EDIT0),'. ');
休息;
案例GUI_ID_BUTTON11:
EDIT_SetText(WM_GetDialogItem(hWin,GUI_ID_EDIT0),NULL); //清空输入框,并一一删除以下两行
// WM_SetFocus(WM_GetDialogItem(hWin,GUI_ID_EDIT0));
// GUI_SendKeyMsg(GUI_KEY_BACKSPACE,1);
休息;
}
休息;
}
休息;
默认值:
WM_DefaultProc(pMsg);
}
}
//创建键盘对话框
// GUI_CreateDialogBox(_aDialogCreate_kb,GUI_COUNTOF(_aDialogCreate_kb)和_cbCallback_kb,0、0、0);
/ ************************************************** **** **************************** /
//键盘对话框结束
您需要登录才能下载或查看,没有帐户?注册
x
xmcsl离线
点

![]()
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-172346-1.html
说的透彻
盯住日本动态