[易语言][ExDui][Tutorial]1.NameSelector
咕咕咕
尝试自己写组件对象被易语言的对象劝退后,我又回来写教程了。
相信上一章对如何创建窗口讲得足够透彻了,这一章上项目实战:点名器。
点名器这种简单的东西实在是经常被拿出来开刀啊。
还有一点,发现之前Tutorial这个词给拼错了……
Design
在打代码之前,我们必须要清楚界面布局。
一个点名器是怎么样的?
- 显示名称的标签。(NameLabel)
- 开始点名的按钮。(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
界面画好了,开始处理业务逻辑吧。
点名器的话,大概如下流程:
- 读入名单。
- 点击StartButton。
- NameLabel显示一个名字。
在StartButton被单击的事件中添加处理代码即可,具体实现相信大家都会,主要用到该API:
Ex_ObjSetText()
如果直接转换太生硬了,还可以加一点动画,淡入淡出随机显示几个后再显示目标名字等等,这里不细讲了。
Title
最后讲一下标题栏的处理。标题栏也是一个Object,但获取句柄需要用到特殊的方法:
hTitle = Ex_ObjGetFromID (hExDui, #EWS_TITLE)
随后可以拿着句柄操作标题栏了。
Final
最终效果如下:

简单而中规中矩,毕竟一共也就3个控件,代码实现还是比较简单的。
Download Src
[易语言][ExDui][Tutorial]1.NameSelector的更多相关文章
- [易语言][ExDui][Tutorial]0.Hello,world!
原创博客,请勿在未经授权的情况下转载. At the Beginning... 由于近期爱好摸鱼,并且对Gui开发萌生一丝兴趣.在尝试WPF被虐,使用Qt却不太喜欢整套庞大的框架后-- I choos ...
- C++ 编写DLL文件给易语言调用
摸索了两天了,终于解决了所有问题,在此跟大家分享. 需要三个文件,dll_demo.h.dll_demo.cpp.dll_dome.def 直接上代码: 头文件如下: #ifndef _DLL_DEM ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- 易语言5.6 精简破解版[Ctoo]
说明:本易语言5.6破解版 加入了[E剑终情]大神制作的完美通杀补丁,本人还修复了静态编译的问题. 关于静态编译失效的问题,大家解压之后会看到易语言根目录有一个"易言语静态编译配置工具&qu ...
- 易语言软件加VMProtect壳的正确方法
VMP是一款很强大的加密壳,代码虚拟化技术可以很好的保护程序不被恶意修改破J但是很多人不知道怎么给自己的程序加壳,今天给大家晋级下加壳的正确方法 相信很多新手都以为只要把软件直接拖到VMP里重新编译一 ...
- Windows2003/2008/2008 R2下易语言点支持库配置就退出的问题
问题: 请问一个问题,我的电脑上win2003系统的,安装了易语言后,一点支持库配置就会自动退出.这是为什么啊? 解决方法如下: 删除 lib下的wmp.npk,重新打开易语言就可以了.
- 易语言转C#小试牛刀
呵呵,用了几年的易语言,太郁闷了,玩过E的童鞋们懂得,偶然机会尝试C#,现正式投入C#门下. 我会把我学习C#的一些知识和重点,实时发不到我的BLOG中,同想学习C#的童鞋一起成长起来.
- 幻世(OurDream)2D图形引擎易语言汉化版更新提示
幻世引擎的易语言汉化专版到目前为止已经累积了多个BUG,其中多个BUG是影响引擎功能使用的问题,我将会在近期发布修复所有问题的更新版本(此更新版本同时也将会支持最新的对加入的粒子系统的支持),敬请各位 ...
- 易语言 【寻找文本】命令的bug
最近在重写易语言模块的时候,在取子文本操作时老是出错,经常出现一些奇怪的问题,一开始以为是代码问题,可是找半天硬是找不到问题所在. 于是进入了找bug模式,这么几行代码,看了我半个小时,左改右改,总感 ...
随机推荐
- JavaSE复习~方法基础
方法的概念 方法:就是讲一个功能抽取出来,把代码单独定义在其中,形成一个单独的功能 我们需要这个功能的时候,就可以去调用,实现了代码的复用性,也解决了代码冗余的问题 方法的定义 定义的一般格式:jav ...
- Python 中多进程、多线程、协程
进程: 一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最小单位,进程拥有自己独立的内存空间,所以进程间数据不共享.开销大. 线程: 调度执行的最小单位,也叫执行路径,不 ...
- 【代码学习】PYTHON 异常处理
一.什么是异常 在程序执行过程中可能会影响程序的正常执行,一般情况下,在python无法正常处理程序时就会发生一个异常 当python脚本发生异常时我们需要捕获处理他,否则程序会终止执行 二.异常处理 ...
- pair node stack vector string priority_queue
multiset 元素重复 自动排序 map #include <bits/stdc++.h> using namespace std; map<int,int> s;//自当 ...
- POJ3662 Telephone Lines (dijkstra+二分)
Farmer John wants to set up a telephone line at his farm. Unfortunately, the phone company is uncoop ...
- 洛谷 CF798C Mike and gcd problem
嗯... 题目链接:https://www.luogu.org/problemnew/show/CF798C 这道题首先要会写gcd..也类似一种找规律吧... 问题的操作是在两个数的基础上进行的: ...
- JavaScript中关于隐式转换的一些总结
JavaScript运算符中的隐式转换规律:一.递增递减运算符(前置.后置)1.如果包含的是有效数字字符串或者是有效浮点数字符串,则会将字符串转换(Number())为数值,再进行加减操作,返回值的类 ...
- 实验一  GIT 代码版本管理
实验一 GIT 代码版本管理 实验目的: 1)了解分布式分布式版本控制系统的核心机理: 2) 熟练掌握git的基本指令和分支管理指令: 实验内容: 1)安装git 2)初始配置git ,git ...
- Python3.5学习之旅——day4
本节内容 1.装饰器 2.迭代器与生成器 3.内置方法 4.软件目录结构规范 一.装饰器 装饰器是一个用来装饰其他函数的工具,即为其他函数添加附加功能,其本质就是函数. 装饰器需要遵循的以下两个原则: ...
- Python3.5学习之旅——day2
本节内容: 1.模块初识 2..pyc是什么? 3.Python的数据类型 4.三元运算 5.进制 6.byte类型 7.数据运算 8.列表 9.元组 10.课后练习 一.模块初识 由day1的学习我 ...