[易语言][ExDui][Tutorial]1.NameSelector

咕咕咕

尝试自己写组件对象被易语言的对象劝退后,我又回来写教程了。
相信上一章对如何创建窗口讲得足够透彻了,这一章上项目实战:点名器。
点名器这种简单的东西实在是经常被拿出来开刀啊。
还有一点,发现之前Tutorial这个词给拼错了……

Design

在打代码之前,我们必须要清楚界面布局。
一个点名器是怎么样的?

  1. 显示名称的标签。(NameLabel)
  2. 开始点名的按钮。(StartButton)

Easy enough,right?
画个界面图方便打代码,最好使用一些方便的工具。当时我选择的是ProcessOn,但的确算不上好用……
不过位置能画出来就好了,其他的随缘。

Coding

显示窗口就不赘述了,可以看我之前的教程
随后往窗口上加控件。

NameLabel

并没有Label之类的控件……我查了好久Demo,才发现一个Static比较像。
Static是windows下显示静态文本的控件。显示文本嘛,当成Label就好了。
使用Ex_ObjCreateEx来创建组件对象。
其中hParent填写ExDui的句柄,其他没啥特殊的。
为了显示效果,将Text_Format设置为纵向横向居中。
最终代码大概是这样:

hNameLabel = Ex_ObjCreateEx (-1, 取指针_字节集型 (temp1), 取指针_字节集型 (temp2), -1, 0, 110, 640, 100, hExDui, 0, 位或 (#DT_VCENTER, #DT_CENTER), 0, 0, 0)

设置下背景颜色啊,字体啊,代码如下:

Ex_ObjSetColor (hNameLabel, #COLOR_EX_BACKGROUND, RGB2ARGB (取颜色值 (204, 229, 255), 255), 假)
Ex_ObjSetFont (hNameLabel, _font_createfromfamily (取指针_字节集型 (temp3), 40, -1), 假)

其中文本为:

temp1 = A2W (“Static”, )
temp2 = A2W (“keep it Simple and Stupid.”, )
temp3 = A2W (“微软雅黑”, )

NameLabel没什么需要绑定的事件,创建好放在那里就行了。

StartButton

所有控件统一视为Object,所以还是按部就班地创建一个obj。

temp1 = A2W (“Button”, )
temp2 = A2W (“开始点名”, )
hStartButton = Ex_ObjCreate (取指针_字节集型 (temp1), 取指针_字节集型 (temp2), -1, 250, 250, 140, 50, hExDui)

按钮要绑定事件处理点击,用ObjHandleEvent来绑定。

Ex_ObjHandleEvent (hStartButton, #NM_CLICK, 到整数 (&onStartButtonClicked))

随后ShowWindow,开始消息循环即可。

Do Things

界面画好了,开始处理业务逻辑吧。
点名器的话,大概如下流程:

  1. 读入名单。
  2. 点击StartButton。
  3. NameLabel显示一个名字。

在StartButton被单击的事件中添加处理代码即可,具体实现相信大家都会,主要用到该API:

Ex_ObjSetText()

如果直接转换太生硬了,还可以加一点动画,淡入淡出随机显示几个后再显示目标名字等等,这里不细讲了。

Title

最后讲一下标题栏的处理。标题栏也是一个Object,但获取句柄需要用到特殊的方法:

hTitle = Ex_ObjGetFromID (hExDui, #EWS_TITLE)

随后可以拿着句柄操作标题栏了。

Final

最终效果如下:

简单而中规中矩,毕竟一共也就3个控件,代码实现还是比较简单的。
Download Src

原文地址:https://www.cnblogs.com/Clouder-Blog/p/ExDuiTutorial1.html

时间: 2024-10-31 03:43:36

[易语言][ExDui][Tutorial]1.NameSelector的相关文章

[易语言][ExDui][Tuturial]0.Hello,world!

At the Beginning... 由于近期爱好摸鱼,并且对Gui开发萌生一丝兴趣.在尝试WPF被虐,使用Qt却不太喜欢整套庞大的框架后-- I choose E language! 重拾了小学用的工具-- 据我所知,易语言的Gui除了native E之外,主要是Ex_Ui和ExDui两家,而Ex_Ui由于高度封装,相对效率低一些,而逼格可能不如ExDui. 并且ExDui似乎有多语言支持,通用性更好. 于是选择了EXDUI,开始学习-- Install 安装的话,去官方论坛下载即可,提供了

易语言算法原理浅析【一】

注: 如果你看完了下面的文章.就来试试这个KeyGenMe吧,相信你能有所收获. http://www.52pojie.cn/thread-540179-1-1.html 一.文章开头首先我们要贴上一段易语言代码,并且编译这段代码,从汇编角度分析易语言程序编译后,易语言算法在汇编中的实现过程. .版本 2 .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 变量1, 整数型 .局部变量 变量2, 整数型 .局部变量 变量3, 整数型 变量2 = 1 变量3 = 2 变量1 =

易语言 无法定位链接器

解决方法:打开安装的目录 e/vc98linker/双击 link.e 00.运行 ,点击修改 易语言 无法定位链接器 解决方法 教程下载:点击下载

易语言数字指令编程大全(发送信息代码数据集合)

控件选中并鼠标显示四向箭头: 控件.发送信息(274,61440,0) 控件.发送信息(274,61450,0) 控件最大化: 控件.发送信息(274,61488,0) 参数2在61488-61503都有效 移动控件: 控件.发送信息(274,61449,0) 2.调整控件尺寸 调整左边: 控件.发送信息(274,61441,0) 调整右边: 控件.发送信息(274,61442,0) 调整顶边: 控件.发送信息(274,61451,0) 控件.发送信息(274,61443,0) 左上角调整: 控

[转]易语言消息机制分析(消息拦截原理)

标 题: [原创]易语言消息机制分析(消息拦截原理)作 者: 红绡枫叶时 间: 2014-12-17,12:41:44链 接: http://bbs.pediy.com/showthread.php?t=195626 我自己做了个易语言的sig签名,方便分析的时候用.易语言例子是静态编译的.版本 5.11易语言其实是基于mfc的,它依然需要mfc的消息派发机制,只不过,自己当了系统与用户间的代理人.所有的消息都要经它转发而已.我在MFC的消息派发函数_AfxDispatchCmdMsg下断点,总

易语言调用csharp写的COM组件的程序在Win2008上奔溃的解决办法

易语言调用csharp写的COM组件,除了要注册csharp写的dll之外(由于是.net代码,需要用.net自带的注册工具RegAsm.exe注册,具体注册方法为: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe dotnet_lib.dll /tlb 这种调用的方法,在大部分的机器下捣鼓之后能成功,但是也有不成功的案例,具体表现如下: 一开始我以为是少了哪些dll,后来上百度,一找关键字“StackHash_0a9e”,还真能

VC调用易语言DLL

易语言方面: .版本 2 .子程序 show, , 公开 ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中. ***注意不要修改本子程序的名称.参数及返回值类型. 载入 (窗口1, , 真) .子程序 add, 整数型, 公开 .参数 x, 整数型 .参数 y, 整数型 返回 (x + y) VC调用方法: void CWebcyzDlg::OnButton1() { //动态加载DLL的方法 HINSTANCE

[转]易语言逆向分析

PDF文件,看雪论坛转来的,理解易语言程序加载执行流程有帮助. 下载地址:刮刮乐 点击下载  访问密码 207b

易语言 网络编程

易语言如何进行套接字(Socket)呢,它比较麻烦些因为一般是别人提供易语言模块 不过也有 个弱点易模块开发者基本是个人性质有些人会恶作剧编写一些非法性质的代码,那么这就会 造成一种安全隐患,那么回到正题我们如何去编写Socket应用,不过首先我建议首先封装. 上图是一个简单的Client / Server调用易模块的示例代码,本人不是一名合格的易程序员而 是.NET上的一名程序员,所以在我封装命名上是按照.NET上Socket的一些风格,不过对于 你们查阅代码而言并不会有多大影响. Socke