EasyX很有趣,参考EasyX官网的文章,花了几个小时做了一个时钟程序,包含背景音乐、背景图片,时钟是模仿Iphone时钟设计的,可惜不像。系数调整的比较粗略,表针走的不是非常精确,另外以后再加上个程序图标。

#include <graphics.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#pragma comment(lib, "Winmm.lib") // 引用 Windows Multimedia API
#define PI 3.1415926void Drawdail(void)
{   //大圆setfillcolor(WHITE);fillcircle(250, 235, 160);//小圆setlinecolor(0x231f20);setlinestyle(PS_SOLID, NULL, 3);fillcircle(250, 235, 10);int x, y;for (int i=1; i<=60; i++){x = 250 + int(145 * sin(PI * 2 * i / 60));y = 250 - int(145 * cos(PI * 2 * i / 60));if (i % 5 == 0){char c[2];sprintf(c, "%d", i/5);settextcolor(0x231f20);setbkmode(TRANSPARENT);setfont(25, 0, "Calibri");outtextxy(x-10, y-28, c);}}
}void DrawHand(int hour, int minute, int second)
{double a_hour, a_min, a_sec;int x_hour, y_hour, x_min, y_min, x_sec, y_sec;// 计算时、分、秒针的弧度值a_sec = second * 2 * PI / 60;a_min = minute * 2 * PI / 60 + a_sec / 60;a_hour= hour * 2 * PI / 12 + a_min / 12;// 计算时、分、秒针的末端位置x_sec = int(145 * sin(a_sec));  y_sec = int(145 * cos(a_sec));x_min = int(100 * sin(a_min));  y_min = int(100 * cos(a_min));x_hour= int(80 * sin(a_hour));  y_hour= int(80 * cos(a_hour));// 画时针setlinestyle(PS_SOLID, NULL, 8);setcolor(BLUE);line(250, 235, 250 + x_hour, 250 - y_hour);// 画分针setlinestyle(PS_SOLID, NULL, 5);setcolor(YELLOW);line(250, 235, 250 + x_min, 250 - y_min);// 画秒针setlinestyle(PS_SOLID, NULL, 2);setcolor(LIGHTRED);line(250, 235, 250 + x_sec, 250 - y_sec);
}//
// 提取指定模块中的资源文件
// 参数:
//      strDstFile:     目标文件名。提取的资源将保存在这里;
//      strResType:     资源类型;
//      strResName:     资源名称;
// 返回值:
//      true: 执行成功;
//      false: 执行失败。
//
bool ExtractResource(LPCTSTR strDstFile, LPCTSTR strResType, LPCTSTR strResName)
{// 创建文件HANDLE hFile = ::CreateFile(strDstFile, GENERIC_WRITE, NULL, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_TEMPORARY, NULL);if (hFile == INVALID_HANDLE_VALUE)return false;// 查找资源文件中、加载资源到内存、得到资源大小HRSRC  hRes    = ::FindResource(NULL, strResName, strResType);HGLOBAL hMem    = ::LoadResource(NULL, hRes);DWORD dwSize  = ::SizeofResource(NULL, hRes);// 写入文件DWORD dwWrite = 0;      // 返回写入字节::WriteFile(hFile, hMem, dwSize, &dwWrite, NULL);::CloseHandle(hFile);return true;
}void main(void)
{initgraph(500, 470);//play music;  TCHAR tmpmp3[_MAX_PATH];    // 产生临时文件的文件名::GetTempPath(_MAX_PATH, tmpmp3);_tcscat(tmpmp3, _T("happy_temp.mp3"));  ExtractResource(tmpmp3, _T("MP3"), _T("happy.mp3"));    // 将 MP3 资源提取为临时文件TCHAR mcicmd[300];_stprintf(mcicmd, _T("open \"%s\" alias music"), tmpmp3);mciSendString(mcicmd, NULL, 0, NULL);  mciSendString(_T("play music repeat"), NULL, 0, NULL);//loadimage(NULL, "image", "image", 500, 470,true);//system("pause");//clearrectangle(0, 0, 500, 470);loadimage(NULL, "backgroud", "bak", 500, 470, true);//system("pause");setcolor(0x231f20);Drawdail();setwritemode(R2_XORPEN);SYSTEMTIME T;while(!kbhit()){GetLocalTime(&T);DrawHand(T.wHour, T.wMinute, T.wSecond);Sleep(1000);DrawHand(T.wHour, T.wMinute, T.wSecond);}// 停止播放并关闭音乐mciSendString(_T("stop mymusic"), NULL, 0, NULL);mciSendString(_T("close mymusic"), NULL, 0, NULL);    // 删除临时文件DeleteFile(tmpmp3);closegraph();
}

exe程序下载:http://download.csdn.net/detail/guangxyou/5328184

时钟、背景音乐、背景图片相关推荐

  1. html语言加入图片背景音乐,如何插入背景音乐和背景图片(附HTML语法教程地址)...

    插入背景音乐: 代码: 说明: SRC="FILENAME"-- 设定音乐文件的路径 AUTOSTART=TRUE/FALSE--TRUE:自动播放,FALSE:不自动播放,默认为 ...

  2. java版坦克大战加入背景音乐及背景图片

    前一阵学习完Java基础,想着练习一下,就写了个坦克大战练手,基本上是跟着马士兵老师的视频写的,写完以后感觉效果有点low,毕竟自己花费了很多时间敲这个,所以想加入背景图片及背景音乐,让它看起来稍微舒 ...

  3. 怎么同时给多个视频添加背景音乐、背景图片

    怎么同时剪辑多个视频?像添加背景音乐.背景图片等效果,该如何在电脑上实现呢?今天小编给大家分享一款剪辑软件--视频剪辑高手,下面一起用它来试试叭. 批量导入视频素材 首先,打开视频剪辑高手并登录 进入 ...

  4. java 发送图片邮件_JavaMail邮件发送-为你的邮件增加背景音乐和背景图片

    先搞一个增加背景图片 首先要准备图片,这个图片可以是本地的也可以是远程的 如果你使用本地的,那么会有一些问题,稍后再说,大家也帮忙给看看问题 如果是使用了远程,那很简单,就是发送一个HTML格式的邮件 ...

  5. c语言窗口如何加背景图片,MFC积累---关于设置背景图片、背景颜色插入背景音乐...

    第二种方法是把声音文件加入到资源中,然后从资源中播放声音.Visual C++支持WAVE型资源,用户在资源视图中单击鼠标右键并选择Import命令,然后在文件选择对话框中选择The Microsof ...

  6. 2010C语言添加背景图片_2019级C语言大作业 - 火柴人试炼之地

    C语言大作业 - 火柴人试炼之地https://www.zhihu.com/video/1200491618794606592 分享19级同学大一上学期用C语言实现的火柴人试炼之地.分步骤代码.图片音 ...

  7. HTML怎么在背景中加视频,视频加背景图片 怎样把一个视频嵌入到一个图片中

    不管是在视频中插入图片还是在视频画面中添加图片想必大家都是见过学过制作过的,今天这个教程和以前的有相同之处但还是有很大的不同的,就是把一个视频插入到一张图片中去,说白了就相当于于给视频添加一个背景图片 ...

  8. 将Chrome插件Momentum背景图片设为桌面壁纸

    Momentum简介 Momentum插件是一款自动更换壁纸,自带时钟,任务日历和工作清单的chrome浏览器插件.官方的解释就是:替换你 Chrome 浏览器默认的"标签页".里 ...

  9. 修改文件夹的背景图片和文件名字体颜色

    首先在文件夹根目录下创建文本文档 将以下内容拷入文档: [ExtShellFolderViews] {BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A ...

  10. android更换通知横幅背景图,BLOG背景图片和横幅的更换

    你好 我介绍一个,专门提供设计网呀的: 具体步骤: 1,先把你找的地址粘贴到代码中的"-地址"处, 取代那几个字,待用 2.进入"控制面版"的"个人首 ...

最新文章

  1. android 相册 uri空,android拍照获得图片URI为空的处理方法
  2. 【任务脚本】0530更新淘宝618活动领喵币脚本,OrangeJs基于autojs全自动程序稳定运行,向大神致敬...
  3. c语言程序中unit怎么定义,c ++中的一个定义规则(One definition rule in c++)
  4. php pclzip.lib.php,php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
  5. Java宣言的时候,Java基础恶补——宣言及访问控制
  6. ReactiveCocoa入门
  7. 加密托管服务商Unchained Capital完成550万美元融资,NYDIG领投
  8. python3下载流程_CentOS系统升级Python到Python3.3步骤
  9. Atitit 学习方法 补充 艾龙 著 attilax著 1. Atitit 学习的方法 attilax总结 1 1.1. 2. 基于学习策略的分类 2 2 1.2. 3. 基于所获取知识的表示形
  10. Fontmin字体生成,网站开发字体生成,@font-face字体格式生成,html网站字体引入,html网站字体格式转换器
  11. Unity(十):3D角色移动跳跃
  12. 【c++笔记一】名字空间(namespace)
  13. xctf crazy
  14. Unity【Bounds Vector3 Cross】- 如何判断一个物体是否在一个凸边体三维区域内
  15. jsr基本使用@valid和@validation
  16. Vue前端实战——外卖商家
  17. 简单总结里的结构化,成长型思维
  18. adams 绳索仿真
  19. 华为鸿蒙电池,4700mAh电池+新鸿蒙系统华为Mate40,华为Mate30再创超低价神话
  20. 自定义HikariCP连接池

热门文章

  1. Scheme 语言概要(上)
  2. 垃圾回收器CMS和G1
  3. 向前迈进!走入GC世界:G1 GC原理深入解析
  4. 大象不会跳舞了吗?营收下滑的IBM在干什么
  5. 高德sdk定位当前位置_高德api获取当前位置
  6. 税务信息化与计算机技术应用开发,税务信息化与计算机技术应用开发岗位辞职报告范文...
  7. apfs扩容_MacBook Pro 2018 评测:这台价值一万四的电脑到底值不值得买?
  8. 服务器ubuntu系统调节亮度,ubuntu 设置显示器的亮度
  9. 关于hash(一):基本概念
  10. 投资理财之基金篇(一) - 认识基金