咕咕咕

尝试自己写组件对象被易语言的对象劝退后,我又回来写教程了。

相信上一章对如何创建窗口讲得足够透彻了,这一章上项目实战:点名器。

点名器这种简单的东西实在是经常被拿出来开刀啊。

还有一点,发现之前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

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

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

    原创博客,请勿在未经授权的情况下转载. At the Beginning... 由于近期爱好摸鱼,并且对Gui开发萌生一丝兴趣.在尝试WPF被虐,使用Qt却不太喜欢整套庞大的框架后-- I choos ...

  2. C++ 编写DLL文件给易语言调用

    摸索了两天了,终于解决了所有问题,在此跟大家分享. 需要三个文件,dll_demo.h.dll_demo.cpp.dll_dome.def 直接上代码: 头文件如下: #ifndef _DLL_DEM ...

  3. 在易语言中调用MS SQL SERVER数据库存储过程方法总结

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...

  4. 易语言5.6 精简破解版[Ctoo]

    说明:本易语言5.6破解版 加入了[E剑终情]大神制作的完美通杀补丁,本人还修复了静态编译的问题. 关于静态编译失效的问题,大家解压之后会看到易语言根目录有一个"易言语静态编译配置工具&qu ...

  5. 易语言软件加VMProtect壳的正确方法

    VMP是一款很强大的加密壳,代码虚拟化技术可以很好的保护程序不被恶意修改破J但是很多人不知道怎么给自己的程序加壳,今天给大家晋级下加壳的正确方法 相信很多新手都以为只要把软件直接拖到VMP里重新编译一 ...

  6. Windows2003/2008/2008 R2下易语言点支持库配置就退出的问题

    问题: 请问一个问题,我的电脑上win2003系统的,安装了易语言后,一点支持库配置就会自动退出.这是为什么啊? 解决方法如下: 删除 lib下的wmp.npk,重新打开易语言就可以了.

  7. 易语言转C#小试牛刀

    呵呵,用了几年的易语言,太郁闷了,玩过E的童鞋们懂得,偶然机会尝试C#,现正式投入C#门下. 我会把我学习C#的一些知识和重点,实时发不到我的BLOG中,同想学习C#的童鞋一起成长起来.

  8. 幻世(OurDream)2D图形引擎易语言汉化版更新提示

    幻世引擎的易语言汉化专版到目前为止已经累积了多个BUG,其中多个BUG是影响引擎功能使用的问题,我将会在近期发布修复所有问题的更新版本(此更新版本同时也将会支持最新的对加入的粒子系统的支持),敬请各位 ...

  9. 易语言 【寻找文本】命令的bug

    最近在重写易语言模块的时候,在取子文本操作时老是出错,经常出现一些奇怪的问题,一开始以为是代码问题,可是找半天硬是找不到问题所在. 于是进入了找bug模式,这么几行代码,看了我半个小时,左改右改,总感 ...

随机推荐

  1. Windows事件ID

    51 Windows 无法找到网络路径.请确认网络路径正确并且目标计算机不忙或已关闭.如果 Windows 仍然无法找到网络路径,请与网络管理员联系. 52 由于网络上有重名,没有连接.请到“控制面板 ...

  2. iOS中的主要框架framework

    在日常的iOS项目开发中,主要使用的就是Foundation和UIKit这两个框架. (一)Foundation框架 Foundation是对Core Foundation框架的一个封装,使用Foun ...

  3. ROS及Ubuntu学习记录

    1.ROS安装时出现 “无法获得锁的解决方法” 参考:https://www.jianshu.com/p/6868ed4b4aec 2.运行rviz时 要先在一个终端窗口运行roscore 3.虚拟机 ...

  4. Bugku-CTF加密篇之ok(Ook!)

  5. 201771010135杨蓉庆 《面对对象程序设计(java)》第七周学习总结

    学习目标 1.深入理解OO程序设计的特征:继承.多态: 2.熟练掌握Java语言中基于类.继承技术构造程序的语法知识: 3.利用继承定义类设计程序,能够设计开发含有1个主类.2个以上用户自定义类的应用 ...

  6. JavaScript 深度遍历对象的两种方式,递归与非递归

    递归遍历: 基本问题: 当前属性值不为对象时,打印键和值 递归过程:当前属性值为对象时,打印键,继续递归 var o = { a: { b: { c: { d: { e: { f: 1, g:{ h: ...

  7. 02-11Android学习进度报告十一

    今天我学习了BaseAdapter优化的知识,主要是View方面的优化. 首先是复用复用ConvertView 代码示例: @Override public View getView(int posi ...

  8. PCB设计要点

    pcb要点 : 2014年8月5日 13:04 一地线设计 1.1分类模拟地.数字地.外壳地.系统大地 1.2接地方式:单点接地(f<1MHZ,避免环流),多点接地(f>10MHZ降低地线 ...

  9. java之中文乱码处理

    有些时候,比如文件操作的时候,特别是文件中有中文,会规定用GBK格式,这时读写文件,可能会出现中文乱码 资源文件乱码 文件内容乱码 资源文件乱码: 解决: PropertiesUtil proper ...

  10. 大数据篇:YARN

    YARN YARN是什么? YARN是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率.资源统一管理和数据共享等方面带来了巨大 ...