易语言API创建文本型按钮

易语言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 .如果真结束
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

易语言API创建文本型按钮》有0个想法

回复 易语言 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注