网站首页 > 易语言相关 > 易语言例程 正文
易语言API创建文本型按钮
@叼丝爱打撸啊撸
.版本 2 .支持库 spec .程序集 窗口程序集_启动窗口, , , ' 本源码来自三叶资源网(www.sanye.cx) .程序集变量 IDC_1, 整数型 .程序集变量 menuID, 整数型 .程序集变量 oldMenuID, 整数型 .子程序 __启动窗口_创建完毕, , , ' 本源码来自三叶资源网(www.sanye.cx) IDC_1 = 1 SetTime (, , 10) .子程序 窗口绘制字体, 逻辑型, , 绘制主窗口 .参数 hWnd, 整数型, 可空, 0 绘制给自己 1绘制给指定窗口句柄 .局部变量 hdc, 整数型, , , 建立设备DC .局部变量 hPen, 整数型, , , 创建画笔 .局部变量 hFont, 整数型, , , 创建字体 .局部变量 hBrush, 整数型, , , 创建画刷 .局部变量 menu, menu .局部变量 TextOutA, 整数型 .局部变量 i, 整数型 .局部变量 lf, LOGFONT .局部变量 文本, 文本型, , "4" .局部变量 待分割的文本, 文本型, , "0" lf.字体高度 = 25 lf.字体宽度 = 12 lf.加粗 = 900 lf.内码 = 130 lf.新字体名 = “仿宋” .如果 (是否为空 (hWnd)) hWnd = _启动窗口.取窗口句柄 () .否则 hWnd = hWnd + 0 .如果结束 hdc = GetDC (hWnd) hPen = CreatePen (#PS_SOLID, 4, 取颜色值 (0, 0, 255)) hFont = CreateFontIndirect (lf) hBrush = CreateSolidBrush (取颜色值 (0, 0, 255)) ' 用纯色创建一个刷子 SelectObject (hdc, hPen) SelectObject (hdc, hFont) SelectObject (hdc, hBrush) SetBkMode (hdc, #TRANSPARENT) SetBkColor (hdc, 取颜色值 (0, 0, 0)) SetTextCharacterExtra (hdc, 3) SetTextColor (hdc, 取颜色值 (255, 151, 29)) ' 文本颜色 menu.szName = “开始游戏” ' ▲▼●○▽△ menu.nCount = menu.szName menu.xPos = 369 ' 宽度 ÷ 2 - 设置字体 ().字体高度 - 设置字体 ().字体宽度 menu.ypos = 200 ' 高度 ÷ 2 - 设置字体 ().字体高度 ÷ 2 - 设置字体 ().字体宽度 TextOuts (hdc, menu.xPos, menu.ypos + 0 × 40, menu.szName, lstrlen (menu.nCount)) TextOuts (hdc, menu.xPos, menu.ypos + 1 × 40, “游戏设置”, lstrlen (menu.nCount)) TextOuts (hdc, menu.xPos, menu.ypos + 2 × 40, “查看攻略”, lstrlen (menu.nCount)) TextOuts (hdc, menu.xPos, menu.ypos + 3 × 40, “结束游戏”, lstrlen (menu.nCount)) ' 调试输出 (LineTo (hdc, 矩形 ().右边 - 矩形 ().左边 - 顶边 ÷ 2 + 85, 矩形 ().底边 - 矩形 ().顶边 - 40)) DeleteObject (hPen) DeleteObject (hFont) DeleteObject (hBrush) .如果真 (TextOutA = 1) 返回 (真) .如果真结束 返回 (假) .子程序 TextOuts, , , 文本绘图 .参数 hdc, 整数型 .参数 xPos, 整数型 .参数 ypos, 整数型 .参数 szName, 文本型 .参数 nCount, 整数型 TextOut (hdc, xPos, ypos, szName, nCount) ' 本源码来自三叶资源网(www.sanye.cx) .子程序 矩形, RECT, , 取矩形大小 .局部变量 re, RECT GetWindowRect (取窗口句柄 (), re) 返回 (re) .子程序 SetTime, 整数型, , 时钟开始 .参数 hWnd, 整数型, 可空 .参数 IDEvent, 整数型, 可空, 为计时器设置一个ID .参数 lapse, 整数型, 可空, 多少毫秒执行一次 .局部变量 s, 整数型 .如果真 (是否为空 (hWnd) 或 hWnd = 0) s = SetTimer (取窗口句柄 (), IDEvent, lapse, &DrawSelectedMenu) .如果真 (s > 0) 返回 (1) .如果真结束 .如果真结束 SetTimer (hWnd, IDEvent, lapse, &DrawSelectedMenu) 返回 (0) .子程序 StopTime, 整数型, , 停止时钟 .参数 hWnd, 整数型, 可空 .参数 IDEvent, 整数型, 可空 .局部变量 s, 整数型 .如果真 (是否为空 (hWnd) 或 hWnd = 0) 返回 (KillTimer (取窗口句柄 (), IDEvent)) .如果真结束 .如果真 (hWnd > 0) ' 本源码来自三叶资源网(www.sanye.cx) KillTimer (hWnd, IDEvent) .如果真结束 返回 (0) .子程序 DealMouseMove, 整数型, , 判断鼠标是否在按钮上 .参数 hwnd, 整数型 .局部变量 pt, POINTAPI GetCursorPos (pt) ScreenToClient (hwnd, pt) ' 调试输出 (pt.x, pt.y) ' * 200 ' * 240 ' * 320 ' * 440 .判断开始 (pt.x < 360) 返回 (0) .判断 (pt.x > 460) 返回 (0) .判断 (pt.y < 190) 返回 (0) .判断 (pt.y > 440) 返回 (0) .默认 .判断结束 .判断开始 (pt.y > 200 且 pt.y < 220) ' 返回位置1,2,3,4,分别代表4个按钮 返回 (1) .判断 (pt.y > 240 且 pt.y < 260) 返回 (2) .判断 (pt.y > 285 且 pt.y < 300) 返回 (3) .判断 (pt.y > 310 且 pt.y < 345) 返回 (4) .默认 返回 (0) .判断结束 .子程序 DrawSelectedMenu, 整数型, , 获取按钮ID .局部变量 hwnd, 整数型 ' menuID,oldMenuID 为全局变量,用以保存 ' 处理鼠标悬停 hwnd = 取窗口句柄 () menuID = DealMouseMove (hwnd) 调试输出 (menuID) .如果真 (menuID ≠ oldMenuID 且 menuID > 0) ' menuID = menuID - 1 oldMenuID = menuID DrawBlackText (hwnd, menuID) 返回 (oldMenuID) .如果真结束 creatmenu2 (hwnd, menuID) 返回 (0) .子程序 __启动窗口_将被销毁, , , 停止时钟 StopTime (0, IDC_1) .子程序 creatmenu2, , , 如果 = 0 则重置 .参数 hWnd, 整数型, 可空, 0 绘制给自己 1绘制给指定窗口句柄 .参数 i, 整数型, 可空 .局部变量 hdc, 整数型, , , 建立设备DC .局部变量 hPen, 整数型, , , 创建画笔 .局部变量 hFont, 整数型, , , 创建字体 .局部变量 hBrush, 整数型, , , 创建画刷 .局部变量 menu, menu .局部变量 TextOutA, 整数型 .局部变量 lf, LOGFONT lf.字体高度 = 25 lf.字体宽度 = 12 lf.加粗 = 900 lf.内码 = 130 lf.新字体名 = “仿宋” .如果 (是否为空 (hWnd)) hWnd = _启动窗口.取窗口句柄 () .否则 hWnd = hWnd + 0 ' 本源码来自三叶资源网(www.sanye.cx) .如果结束 hdc = GetDC (hWnd) hPen = CreatePen (#PS_SOLID, 4, 取颜色值 (0, 0, 255)) hFont = CreateFontIndirect (lf) hBrush = CreateSolidBrush (取颜色值 (0, 0, 255)) ' 用纯色创建一个刷子 SelectObject (hdc, hPen) SelectObject (hdc, hFont) SelectObject (hdc, hBrush) SetBkMode (hdc, #TRANSPARENT) SetBkColor (hdc, 取颜色值 (0, 0, 0)) SetTextCharacterExtra (hdc, 3) SetTextColor (hdc, 取颜色值 (255, 151, 29)) menu.szName = “开始游戏” ' ▲▼●○▽△ menu.nCount = menu.szName menu.xPos = 369 ' 宽度 ÷ 2 - 设置字体 ().字体高度 - 设置字体 ().字体宽度 menu.ypos = 200 ' 高度 ÷ 2 - 设置字体 ().字体高度 ÷ 2 - 设置字体 ().字体宽度 ' 本源码来自三叶资源网(www.sanye.cx) .如果真 (i ≠ 1) TextOuts (hdc, menu.xPos, menu.ypos + 0 × 40, menu.szName, lstrlen (menu.nCount)) .如果真结束 .如果真 (i ≠ 2) TextOuts (hdc, menu.xPos, menu.ypos + 1 × 40, “游戏设置”, lstrlen (menu.nCount)) .如果真结束 .如果真 (i ≠ 3) TextOuts (hdc, menu.xPos, menu.ypos + 2 × 40, “查看攻略”, lstrlen (menu.nCount)) .如果真结束 .如果真 (i ≠ 4) TextOuts (hdc, menu.xPos, menu.ypos + 3 × 40, “结束游戏”, lstrlen (menu.nCount)) .如果真结束 ' 本源码来自三叶资源网(www.sanye.cx) DeleteObject (hPen) DeleteObject (hFont) DeleteObject (hBrush) .子程序 DrawBlackText, , , 如果 > 0 则执行对应操作 .参数 hWnd, 整数型, 可空, 0 绘制给自己 1绘制给指定窗口句柄 .参数 i, 整数型, 可空 .局部变量 hdc, 整数型, , , 建立设备DC .局部变量 hPen, 整数型, , , 创建画笔 .局部变量 hFont, 整数型, , , 创建字体 .局部变量 hBrush, 整数型, , , 创建画刷 .局部变量 menu, menu .局部变量 TextOutA, 整数型 .局部变量 lf, LOGFONT lf.字体高度 = 25 lf.字体宽度 = 12 lf.加粗 = 900 lf.内码 = 130 lf.新字体名 = “仿宋” .如果 (是否为空 (hWnd)) hWnd = _启动窗口.取窗口句柄 () .否则 hWnd = hWnd + 0 .如果结束 hdc = GetDC (hWnd) hPen = CreatePen (#PS_SOLID, 4, 取颜色值 (0, 0, 255)) hFont = CreateFontIndirect (lf) hBrush = CreateSolidBrush (取颜色值 (0, 0, 255)) ' 用纯色创建一个刷子 SelectObject (hdc, hPen) SelectObject (hdc, hFont) SelectObject (hdc, hBrush) SetBkMode (hdc, #TRANSPARENT) SetBkColor (hdc, 取颜色值 (0, 0, 0)) SetTextCharacterExtra (hdc, 3) SetTextColor (hdc, 取颜色值 (85, 217, 138)) menu.szName = “开始游戏” ' ▲▼●○▽△ menu.nCount = menu.szName menu.xPos = 369 ' 宽度 ÷ 2 - 设置字体 ().字体高度 - 设置字体 ().字体宽度 menu.ypos = 200 ' 高度 ÷ 2 - 设置字体 ().字体高度 ÷ 2 - 设置字体 ().字体宽度 .如果真 (i = 1) TextOuts (hdc, menu.xPos, menu.ypos + 0 × 40, menu.szName, lstrlen (menu.nCount)) .如果真结束 .如果真 (i = 2) TextOuts (hdc, menu.xPos, menu.ypos + 1 × 40, “游戏设置”, lstrlen (menu.nCount)) .如果真结束 .如果真 (i = 3) TextOuts (hdc, menu.xPos, menu.ypos + 2 × 40, “查看攻略”, lstrlen (menu.nCount)) .如果真结束 .如果真 (i = 4) TextOuts (hdc, menu.xPos, menu.ypos + 3 × 40, “结束游戏”, lstrlen (menu.nCount)) .如果真结束 DeleteObject (hPen) DeleteObject (hFont) DeleteObject (hBrush) .子程序 _时钟1_周期事件, , , 开始绘制 .如果真 (取窗口句柄 () > 0) 窗口绘制字体 () 时钟1.时钟周期 = 0 .如果真结束
- 上一篇: 易语言无限打开/创建窗口
- 下一篇: 罗技启动器UI界面易语言源码
猜你喜欢
- 2023-07-14 api检测是否连接互联网源码
- 2022-08-13 xbox手柄监测 2种方式代码 API
- 2022-08-03 易语言使用zblog(Z-BlogPHP)官方API协议POST发布文章例程
- 2022-04-28 企业微信-自建应用接受消息API校验源码
- 2022-04-26 易语言使用PDH(性能计数器) 监控CPU,内存,网络,磁盘
- 2020-05-22 小白易语言注册机视频教程合集
- 2020-05-05 一键备份易语言超级列表框数据
- 2020-04-23 易语言调用JsDroid2模块
- 2020-01-26 易语言ECC模块源码
- 2019-10-10 易语言多线程防崩溃例程
你 发表评论:
欢迎- 百度站内搜索
- 关注微信公众号
- 网站分类
-
- 网站公告
- 电子书书籍
- 程序员工具箱
- 编程工具
- 易语言相关
- 网络相关源码
- 图形图像源码
- 系统工具源码
- 易语言模块源码
- 易语言支持库
- 数据库类源码
- 易语言例程
- 易语言游戏开发
- 易语言模块
- 多媒体类源码
- 易语言资源网
- 易语言视频教程
- JS分析教程
- 易语言图文教程
- 易语言常见问题及笔记
- 工具源码
- 易语言版本
- 网络编程
- javascript
- PHP编程
- html
- 正则表达式
- 面试题
- nodejs
- 其它综合
- 脚本专栏
- python
- 按键精灵相关
- 按键精灵图文教程
- 按键精灵视频教程
- 按键精灵Q语言
- 按键精灵安卓版
- golang
- 游戏安全
- 火山相关
- 火山安卓软件
- 火山常见问题及笔记
- 火山安卓源码
- 火山视频教程
- 火山PC版本下载
- 火山PC视窗例程
- 互联网那些事
- 引流推广
- 项目揭秘
- 网络营销
- 营销软件
- QQ营销软件
- 娱乐软件
- 机器人插件
- 培训教程
- 技术教程
- 活动线报
- 数据库
- Redis
- Access
- MongoDB
- Mysql
- 问答
- 其它
- 易语言
- 需求
- 在线教程
- 多线程培训班
- 觅风易语言教程
- 模拟系列教程
- 集中营易语言教程
- 历史数据
- 随机tag
已有1位网友发表了看法:
易语言 评论于 [2020-06-06 00:26:51] 回复
文本按钮 易语言