[EMWIN]不同窗口的ID实验 [待完善]
本文主要的目的是想确定,在widget使用中,使用相同的ID,是否会冲突?
前期准备
PC: win7X64 vs2013
emwin 相关:emwin5.42模拟器,emwin5.42英文手册
程序思路
实验一
两个父控件中两个子控件相同ID
1.在桌面窗口上创建两个framewin1 framewin2, 句柄为 win1 win2.
2.在两个framewin中各自创建相同ID (ID_WIDGET) 的 button 控件,且保存 button 的句柄 hBtn1 hBtn2.
实验二
同一父控件内两个子空间相同ID
1.在桌面窗口上创建一个framewin1, 句柄为 win1.
2.在framewin1中各自创建两个相同ID (ID_WIDGET) 的 button 控件,且保存 button 的句柄 hBtn1 hBtn2.
实验①:
(实验一)通过使用 BUTTON 的 API 对 BUTTON 操作( BUTTON_SetText),
实验②:
(实验一)通过通用 API 对 BUTTON 进行位移等操作( WM_MoveChildTo )
实验③
(实验二)对 hBtn1 和 hBtn2 进行设置文字内容( BUTTON_SetText )
实验现象
实验①:
实验②:
实验③
实验结论
从实验一二中可以看出来, emwin 的控件实际上的机制在于句柄,个人认为ID仅仅只是一个标签.
标签不唯一,句柄唯一,故在实际使用中,为避免出错,最好使用保存句柄进行控件的处理.
另外本文只是探索了普通控件下的情况,不包含对话框中使用资源列表创建的控件,如果有人实验出结果,麻烦请留言告知,谢谢.
附录
程序代码: 链接:http://pan.baidu.com/s/1eSOt2H8 密码:3dxb
2017-11-2 : 增加实验二
2017-10-30 : 初次编写内容(实验一)