资源简介
这是用minigui编写的电子时钟程序,界面相对简单,只是实现了最简单的功能

代码片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define YUAN 3.1415926
#define _ID_TIME_STATIC 100
#define _ID_TIMER 101
static struct clock
{
int hour;
int min;
int sec;
}tclock;
static char* mk_time (char* buff)
{
time_t t;
struct tm * tm;
time (&t);
tm = localtime (&t);
tclock.hour=tm->tm_hour;
tclock.min=tm->tm_min;
tclock.sec=tm->tm_sec;
sprintf (buff “%02d:%02d:%02d“ tm->tm_hour tm->tm_min tm->tm_sec);
return buff;
}
static void number(HDC hdc)
{
int i;
for(i=1;i<13;i++)
{
if(i==3)
{
TextOut (hdc 196 162 “3“);
}
else
if(i==6)
{
TextOut (hdc 136 222 “6“);
}
else
if(i==9)
{
TextOut (hdc 77 163 “9“);
}
else
if(i==12)
{
TextOut (hdc 133 104“12“);
}
else
{
TextOut (hdc 140+60*sin(YUAN*30*i/180)-3 170-60*cos(YUAN*30*i/180)-12“.“);
}
}
}
static void line(HDC hdc)
{
int hour2=5*tclock.hour;
if(hour2>=60)
{
MoveTo(hdc140170);
LineTo(hdc140+40*sin(YUAN*6*(hour2-60)/180)170-40*cos(YUAN*6*(hour2-60)/180));
}
else
{
MoveTo(hdc140170);
LineTo(hdc140+40*sin(YUAN*6*hour2/180)170-40*cos(YUAN*6*hour2/180));
}
MoveTo(hdc140170);
LineTo(hdc140+50*sin(YUAN*6*tclock.min/180)170-50*cos(YUAN*6*tclock.min/180));
SetPenColor(hdcPIXEL_red);
MoveTo(hdc140170);
LineTo(hdc140+60*sin(YUAN*6*tclock.sec/180)170-60*cos(YUAN*6*tclock.sec/180));
}
static int HelloWinProc(HWND hWnd int message WPARAM wParam LPARAM lParam)
{
HDC hdc;
char buff [20];
// static char msg_text[30];
switch (message)
{
//创建时发送的消息,用来做初始化处理,这里是初始化字符串内容
case MSG_CREATE:
// strcpy(msg_text“定时器“);
CreateWindow (CTRL_STATIC mk_time (buff)
WS_CHILD | WS_BORDER | WS_VISIBLE | SS_CENTER
_ID_TIME_STATIC
50 20 200 25
hWnd 0);
/* 创建一个间隔为 1 秒的定时器,其标识号为 _ID_TIMER,接收定时器消息的窗口为 hWnd */
SetTimer (hWnd _ID_TIMER 100);
break;
case MSG_TIMER:
/* 接收到定时器消息。
* 严格的程序还应该在这里判断 wParam 是否等于期望的定时器标识符,这里是 _ID_TIMER。
*/
switch (wParam)
{
case _ID_TIMER:
InvalidateRect(hWnd NULL TRUE);
SetDlgItemText (hWnd _ID_TIME_STATIC mk_time (buff));
break;
}
break;
case MSG_PAINT:
hdc = BeginPaint (hWnd);
Circle(hdc14017073);
number(hdc);
line(hdc);
EndPaint (hWnd hdc);
break;
//结束时一些处理函数,主要是销毁主窗口和发送quit消息以退出消息循环。
case MSG_CLOSE:
/* 删除定时器 */
KillTimer (hWnd _ID_TIMER);
DestroyMainWindow (hWnd);
PostQuitMessage (hWnd);
return 0;
}
return DefaultMainWinProc(hWnd message wParam lParam);
}
int MiniGUIMain (int argc const char* argv[])
{
MSG Msg;
HWND hMainWnd;
MAINWINCREATE CreateInfo;
//窗
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2010-12-24 13:28 clock\
文件 32998 2010-12-23 20:51 clock\.cproject
文件 2173 2010-12-23 20:50 clock\.project
目录 0 2010-12-24 14:26 clock\Debug\
文件 61397 2010-12-24 14:26 clock\Debug\clock.exe
目录 0 2010-12-24 14:26 clock\Debug\src\
文件 40996 2010-12-24 14:26 clock\Debug\src\clock.o
文件 15310 2010-12-23 20:52 clock\MiniGUI.cfg
目录 0 2010-12-23 20:51 clock\src\
文件 4234 2010-12-24 14:26 clock\src\clock.c
- 上一篇:可以进行图片的电话号码识别
- 下一篇:51单片机迷宫小车
相关资源
- STM32 led 时钟
- 嵌入式图形界面MiniGUI的示例程序9例
- 单片机电子时钟 闹钟 日历
- 单片机数字时钟包附电路图 源程序
- 软件方法测试RTX时钟
- (MFC) 时钟日期程序
- 图形学集成程序dda、中点算法、多边
- flash透明时钟140个
- actel fpga外部输入时钟毛刺问题排查与
- STM32F407实时时钟_DS1302实时时钟模块和
- 基于STM32F103的实时时钟程序,采用D
- 51单片机_DS1302时钟芯片_共阴数码管
- Qt时钟Demo,在原来基础上添加了秒针
- DS1302时钟带可调时间显示
- Lcd12864大时钟万年历 农历生肖温度
- 基于FFMPEG_SDL2_音视频播放_参考音频时
- Qt 日历可显示阴历生宵和时钟基于Q
- MSP430F5438 UCS 时钟操作实验
- 51单片机7种常见时钟电路图
- AVR多功能实验箱DS1302时钟实验源码资
- 畅学STM32多功能实验箱DS1302时钟芯片源
- “回收利用”数字系统中的时钟
- 基于单片机的电子时钟设计
- ESP8266+OLED屏实现天气预报+温度显示
- labview程序设计的电子时钟
- STM32指针式时钟工程项目
- 基于ISE的基本数字时钟工程
- stm32f103和时钟芯片ds1302
- 基于stm32辉光管时钟pcb
- 基于STC89C52单片机的数字时钟
评论
共有 条评论