20190606学习日记

这篇博客详细记录了GUIBuilder的使用,包括GUIBulider小工具、对话框、窗口小工具,尤其是BUTTON控件的使用和显示位图。此外,还介绍了UCOSII操作系统的学习,讲解了多任务系统、抢占式调度、任务管理和资源访问控制等关键概念,强调了任务切换、临界资源管理和可重入性的重要性。
摘要由CSDN通过智能技术生成

#2019.6.6
#EMWIN Learning… …(continue)
#一、GUIBulider的使用
##1.GUIBulider小工具的使用
#二、对话框
##1.对话框基本原理
###(1)输入焦点

窗口管理器可以记住用户使用触摸屏、鼠标、键盘或其他方式最终所选择的窗口或窗口对象。该窗口收到键盘输入消息,即具有输入焦点。追踪输入焦点的主要原因是为了确定键盘命令的发送目的地。

###(2)阻塞式和非阻塞式对话框

阻塞式对话框会阻塞执行的线程,默认情况下,它具有输入焦点,用户必须先关闭它,线程才能继续执行。
NOTE:切勿从回调函数中调用阻塞式函数,否则可能会导致应用程序故障!!

##2.对话框API函数
###(1)GUI_CreateDialogBox()

	作用:创建非阻塞式对话框
	原型:WM_HWIN GUI_CreateDialogBox(const GUI_WIDGET_CREATE_INFO *paWidget, int NumWidgets, WM_CALLBACK *cb, WM_HWIN hParent, int x0, int y0);
	参数:paWidget:定义对话框中所要包含的小工具的资源表的指针。
		 NumWidgets:对话框中所包含小工具的总数.
		 cb:应用程序特定的回调函数(对话框过程函数)的指针。
		 hParent:父窗口的句柄(0表示没有父窗口)
		 x0:对话框相对于父窗口的x轴位置。
		 y0:对话框相对于父窗口的y周位置

###(2)GUI_ExecCreatedDialog()

	作用:执行已创建的对话框

###(3)GUI_ExecDialogBox()

	作用:创建并执行对话框

###(4)GUI_EndDialog()

	作用:结束对话框

#三、窗口小工具
小工具不是编写应用程序或用户界面必须的,但可以大大简化编程。
##1.小工具的一些基础知识
##2.通用控件API函数
#四、BUTTON控件
##1.综合实验过程
(1)WM_INIT_DLALOG消息,用来初始化对话框中的小工具。
(2)子控件向父控件发送的通知消息,在这个消息中。我们根据不同控件的不同消息类型做出不同的处理。
(3)小控件的通知代码被放到结构体WM_MESSAGE的变量data.v中,这里我们获取到BUTTOn按钮的通知代码,通过分析通知代码来判断BUTTON是被按下还是被释放了的。
(4)BUTTON按钮被释放了。
(5)控制LED、蜂鸣器的开关。
##2.BUTTON控件显示位图
(1)WM_PAINT消息,使用GUIBulider生成的C文件中没有这个消息,需要手动添加,当收到WM_PAINT消息的时候就将对话框的背景色刷新为白色。
(2)初始化BUTTON0的时候调用函数BUTTON_SetBitmapEx()在BUTTOn上显示位图OFF。
(3)初始化BUTTON1的时候调用函数BUTTON_SetB

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值