构建emWin软键盘控件并将其命名为ButtonSKB控件花了两天时间:
前言:
([1) ButtonSKB已经是一个控件,也就是说,ButtonSKB可以像Button控件一样使用。
(2) ButtonSKB是通过Button控件修改的(通过蒙皮),实际上,在一个大按钮中“绘制”了多个小按钮(请注意,这是“绘制”,而不是“正在创建”),即,ButtonSKB实际上是1个按钮,但是此按钮的绘制功能已更改,更改为我们自己的绘制功能并绘制了多个小按钮,为什么这样做?请继续查看...
(3)我相信现在每个人都使用软键盘的方式是创建数十个Button控件来形成键盘。这带来了两个问题:1.占用了大量的SRAM(50个Button会消耗8Kbytes 2.管理麻烦(例如移动,隐藏,禁用等)
([4)因为ButtonSKB是一个Button控件,所以所有Button APP功能都适用于ButtonSKB;如果只需要修改内部小按钮的属性该怎么办?您只能修改上述绘图功能
([5)论坛上有很多专家,谁可以将ButtonSKB演变成中文输入法控件?但是它不能占用太多SRAM,谢谢!!

如何使用ButtonSKB:
(1)使用GUIbuilder创建一个WINDOW表单并放置Button控件,然后将其保存为WindowDLG.c;当然,您可以设计任何形式的软键盘,但不要忘记它必须是WINDOW +按钮组成:
(2)将WindowDLG.c下的ID定义和控制结构复制到SKIN_buttonSKB.c文件(替换原始文件):
#define ID_WINDOW_0(GUI_ID_USER + 0x0 0)
#define ID_BUTTON_0(GUI_ID_USER + 0x0 2)
#define ID_BUTTON_1(GUI_ID_USER + 0x0 3)
....

#define ID_BUTTON_18(GUI_ID_USER + 0x1 4)
#define ID_BUTTON_19(GUI_ID_USER + 0x1 5)
静态const GUI_WIDGET_CREATE_INFO _aDialogCreate [] = {
{WINDOW_CreateIndirect,“ Window”,ID_WINDOW_0,0,0,151,207,0,0x0,0},
{BUTTON_CreateIndirect,“ Ent”,ID_BUTTON_0,113,168,31,31,0,0x0,0},
{BUTTON_CreateIndirect,“。”,ID_BUTTON_1,78,168,31,31,0,0x0,0},
{BUTTON_CreateIndirect,“,”,ID_BUTTON_2,43,168,31,31,0,0x0,0},
{BUTTON_CreateIndirect,“ 0”,ID_BUTTON_3,7,168,31,31,0,0x0,0},

....
{BUTTON_CreateIndirect,“ /”,ID_BUTTON_17,78,17,31,31,0,0x0,0},
{BUTTON_CreateIndirect,“ =”,ID_BUTTON_18,43,17,31,32,0,0x0,0},
{BUTTON_CreateIndirect,“ Del”,ID_BUTTON_19,6,17,31,31,0,0x0,0},
};
(3)经过以上两个步骤,buttonSKB控件已被修改,如何调用?当然,可以将它用作Button控件:
静态const GUI_WIDGET_CREATE_INFO _aDialogCreateSKB [] = {
{FRAMEWIN_CreateIndirect,“”,ID_FRAMEWIN_0,40,25,161,232,FRAMEWIN_CF_MOVEABLE,0},

{BUTTON_CreateIndirect,“”,ID_BUTTON_8,0,0,151,207,0,0x0,2},// SKB请注意,最后一个参数是2
{EDIT_CreateIndirect,“ Edit”,ID_EDIT_0,120,1,23,13,0,0x64,0},
};
“ ID_BUTTON_8”是软键盘控件。
(4)别忘了将WM_INIT_DIALOG消息中的Button控件的绘图功能更改为自定义绘图功能,以便我们可以随意绘制Button控件,emWin不再参与绘图此控件的工作原理:
hItem = WM_GetDialogItem(pMsg-> hWin,ID_BUTTON_ 8);
BUTTON_SetSkin(hItem,SKIN_buttonSKB3C);
如果不执行步骤4,会发生什么?当然,它显示了大按钮的原始外观:
ButtonSKB控件源代码(使用位图皮肤)
ButtonSKB控件源代码(不使用位图外观)
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-315285-1.html
如果他能接受这个称呼
可采取撞击战术对付美军舰的风声起了作用
海军建设还需加油啊
芝麻打成粉了
反正从来不用小米的东西