emWin 2天速成实例教程011_Multipage多页控件使用方法

备注:(1)打开工程目录下的"Exe\GUISimulationDebug.exe"即可看到效果。(2)看完教程000~005就基本会用emWin做项目,其他章节可以需要时再参考。

  在界面应用中Multipage控件是一个非常使用的控件,emWin的Multipage控件已经做的非常完善,值得注意的是要理解好Multipage控件的Window窗口概念,下面是emWin说明书关于Multpage的Window窗口描述:


MULTIPAGE控件实际上包含2个窗口:主窗口和子窗口,子窗口称为Client窗口,在处理回调函数时理解主窗口和Client窗口的概念是很重要的:两个窗口可以对应两个不同的回调函数;当创建Page时,这个Page是作为Client窗口的子窗口包含在Client窗口中的,因此Page的父窗口是Client窗口而非主窗口。而每个Page实际就是一个Window窗口(比如:Window+Button0+Button1+Edit0+Edit1…),反正每个Page都必须包含一个Window控件。

 

(1)使用GUIBuilder V5.30创建如下页面并保存为C文件FramewinDLG.c,然后添加到脱机模拟仿真平台CodeBlocks的emwin工程:




(2)在WM_INIT_DIALOG消息下修改MULTIPAGE初始化程序:

hItem = WM_GetDialogItem(pMsg->hWin,ID_MULTIPAGE_0);

MULTIPAGE_SetTabHeight(hItem,20); //not supported for v5.24

MULTIPAGE_SetTabWidth(hItem,60, 0); //not supported for v5.24

MULTIPAGE_SetTabWidth(hItem,60, 1); //not supported for v5.24

MULTIPAGE_SetTabWidth(hItem,60, 2); //not supported for v5.24

MULTIPAGE_SetFont(hItem,GUI_FONT_16_1);



(3)创建PAGE0,使用GUIBuilderV5.30创建如下页面并保存为C文件WindowDLG.c,然后添加到脱机模拟仿真平台CodeBlocks的emwin工程,用同样的方法创建PAGE1和PAGE2页面:




(4)在WM_INIT_DIALOG消息下修改MULTIPAGE初始化程序,将上面创建的Window页面附贴到MULTIPAGE:

hItem =WM_GetDialogItem(pMsg->hWin, ID_MULTIPAGE_0);

MULTIPAGE_AttachWindow(hItem,0, CreateWindow0());//创建Window页面并附贴到PAGE0

MULTIPAGE_AttachWindow(hItem,1, CreateWindow1());//创建Window页面并附贴到PAGE1

MULTIPAGE_AttachWindow(hItem,2, CreateWindow2());//创建Window页面并附贴到PAGE2



(5)添加控制交互程序:





源码/软件下载

猜你喜欢

转载自blog.csdn.net/neqee/article/details/53425273
今日推荐