实现思路

easyx是实现c/c++的图形库,没有封装好的组件,需要手动完成。
思路是画一个长方形,在长方形中水平、垂直居中显示文字,函数button的四个参数分别表示为,x为距离窗口左上角坐标原点(0,0)的横坐标距离,y为距离窗口左上角坐标原点(0,0)的纵坐标距离,w为按钮的宽度,h为按钮的高度。

设置文字的位置思路是
文字x坐标=按钮边框的起始位置x+(按钮的宽度-文字宽度)/2
文字y坐标=按钮边框的起始位置y+(按钮的高度-文字高度)/2
按钮构造好后,需要获取鼠标的位置坐标,判断鼠标是否在按钮的宽度、高度的范围内,若在此范围内,进行相应的事件函数。

#include <graphics.h>       // 引用图形库头文件
#include <conio.h>
#include<stdio.h>
#include<easyx.h>
void button(int x,int y,int w,int h,TCHAR * text){setbkmode(TRANSPARENT);setfillcolor(GREEN);fillroundrect(x,y,x+w,y+h,10,10);// 输出字符串(MBCS 字符集)TCHAR s1[] = L"黑体";settextstyle(30,0,s1);TCHAR s[50] = L"hello";int tx = x + (w - textwidth(text)) / 2;int ty = y + (h - textheight(text)) / 2;outtextxy(tx, ty, text);}
int main()
{initgraph(640, 480);    // 创建绘图窗口,大小为 640x480 像素setbkcolor(BLUE);cleardevice();TCHAR s[50] = L"1.读取点云";TCHAR s1[50] = L"2.分割点云";TCHAR s2[50] = L"3.单个树木";TCHAR s3[50] = L"4.树木重建";button(220,50,170,50,s);button(220, 150, 170, 50, s1);button(220, 250, 170, 50, s2);button(220, 350, 170, 50, s3);ExMessage msg;while (true) {if (peekmessage(&msg, EM_MOUSE)) {switch (msg.message){case WM_LBUTTONDOWN:if (msg.x >= 220 && msg.x <= 220 + 170 && msg.y >= 50 && msg.y <= 50 + 50){outtextxy(200, 200, s); //写了一个展示文字的效果,相当于是测试,实际使用时可以删除//在此处写下按钮点击时要执行的函数,实现相应的功能}if (msg.x >= 220 && msg.x <= 220 + 170 && msg.y >= 150 && msg.y <= 150 + 50){outtextxy(200, 200, s1);//在此处写下按钮点击时要执行的函数,实现相应的功能  }if (msg.x >= 220 && msg.x <= 220 + 170 && msg.y >= 250 && msg.y <= 250 + 50){outtextxy(200, 200, s2);   //在此处写下按钮点击时要执行的函数,实现相应的功能}if (msg.x >= 220 && msg.x <= 220 + 170 && msg.y >= 350 && msg.y <= 350 + 50){outtextxy(200, 200, s3);   //在此处写下按钮点击时要执行的函数,实现相应的功能}break;default:break;}}}return 0;
}

结果如图所示

点击后效果如图:

使用easyx来实现按钮功能相关推荐

  1. IAR调试按钮功能说明及调试主要看哪些内容

    参考文档:http://www.docin.com/p-1983183635.html IAR调试按钮功能说明 先来看常用的快捷键: 全速运行:F5 单步运行:F10 加断点/取消断点:Ctrl+F9 ...

  2. java小程序显示多种按钮_微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能...

    看了很多帖子,但是效果都不是很好.还是找微信小程序官方文档,自己写比较方便.自己动手丰衣足食!话不多说,上代码! 先来个效果图 html {{item.text}} 查看更多 收起 wxss .box ...

  3. bootstrap table 光标_第三章之Bootstrap 表格与按钮功能

    Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. 学习要点: 1.表 ...

  4. 渐变色按钮功能按钮绘制C语言示例

    渐变色按钮功能按钮绘制C语言示例 本文介绍C语言绘图示例: 1.渐变色按钮  绘制  详见drawcover()  2.功能按钮小图形 绘制       详见newgame ()     3.游戏图形 ...

  5. java重置按钮功能函数_Bootstrap按钮功能之查询按钮和重置按钮

    Bootstrap按钮功能之查询按钮和重置按钮 1.问题背景 一般情况下,查询列表有查询条件.查询按钮和重置按钮,输入查询条件,点击查询按钮查询列表等数据:点击重置按钮会将查询条件恢复到原始状态 2. ...

  6. html怎么把按钮做成可以百度,网站网页中加入各种分享按钮功能 百度分享

    对网页加入分享到各大网站按钮功能,网页中加入分享按钮,用户点击即可分享收藏到对应网站去.不管哪个页面都能记录分享此时情况.DIVCS5推荐使用百度分享 分享按钮功能截图 一.分享按钮形式   -   ...

  7. 用html5label写一个简单的按钮功能

    声明:博主本人第一次在CSDN上传自己的代码,有什么不对的地方,多多指教 本文主要是上传用label标签些一个按钮,按钮设计图是网上看到的,比较漂亮,所以自己用ps做了一个png图. 废话少说,直接上 ...

  8. 基于物联网技术的智慧病房管理系统(二)—— RTOS、AHT20 与 按钮功能实现

    基于物联网技术的智慧病房管理系统(二)-- RTOS.AHT20 与 按钮功能实现 这里 RTOS 代码修改,AHT20 驱动代码移植可以参考前面博客内容: STM32 -- IIC 读取 ATH20 ...

  9. android 开发打赏布局,Android自定义View模仿虎扑直播界面的打赏按钮功能

    Android自定义View模仿虎扑直播界面的打赏按钮功能 发布时间:2020-09-28 12:15:53 来源:脚本之家 阅读:77 作者:shenhuniurou 前言 作为一个资深篮球爱好者, ...

  10. html网页制作教程按钮添加,网页制作html5自定义video标签的海报与播放按钮功能...

    一.问题 1.默认播放按键不好看 2.设置自定义封面图 以上这两点都想自定义 二.思路 1.使用div把video标签盖住 2.div中显示自定义的海报图片与按钮 三.步骤分解 1.海报图片作为div ...

最新文章

  1. iOS 4.2 SDK安装
  2. centos7安装tomcat8.5
  3. 【django轻量级框架】云端系统之Django框架
  4. 7号团队-团队任务3:每日例会(2018-12-05)
  5. jenkins设置使用参数构建项目
  6. linux 系统工程师 面试 开放式问答
  7. iphone xh5打开ppt预览_教你如何用iPhone拍全景照片
  8. 诺奖技术和高通量筛选双双找到新冠病毒的脉门
  9. Android开发之和风天气篇:1、获取天气信息
  10. Cocos2d-x 3.2:定时器的使用和原理探究(1)
  11. Android 11 usb调试默认打开
  12. 机械键盘轴体(红轴、茶轴、黑轴、青轴)
  13. The setting mapUnderScoreToCamelCase is not known. Make sure you spelled it correctly (case sensiti
  14. spaCy 2.1 中文NLP模型
  15. 信息系统项目管理师 第三章-项目立项管理
  16. 云计算----什么是云计算
  17. C语言:二维数组:求平均数
  18. 爬虫基础(5) -网页解析
  19. 吾爱2023新年红包题第六题 (CTF)
  20. 婚宴座位图html5,婚礼座位安排必须注意的15个细节

热门文章

  1. 52840LED/KEY
  2. 性能测试流程(完整版)
  3. js调用数科阅读器_多种方式实现JS调用后台方法进行数据交互
  4. ubuntu 22.04安装微信QQ阿里旺旺等
  5. 计算机文化书签,《计算机文化基础》EXCEL-机试[1]
  6. 3dmax导出fbx模型壳材质贴图丢失
  7. 数字滤波器原理及应用 借助matlab,数字滤波器原理及应用(借助MATLAB)
  8. 区块链+各行业应用案例
  9. 解决magicdraw16.8无法在win8.1下破解使用
  10. linux-tar命令