电子表
来源:互联网 发布:自动约车软件 编辑:程序博客网 时间:2024/05/01 10:31
#include<windows.h>
#include <stdio.h>
#include <math.h>
#define PI 3.1415926
long CALLBACK WndProc(HWND hWnd, int message, int wParam, int lParam);
int _stdcall WinMain(HINSTANCE hInstance,
HINSTANCE hPrelnstance,
LPSTR lpCmdLine,
int nShowCmd)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = NULL
wcex.hCursor = LoadCursor(NULL, IDC_ARROW)
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+20);
wcex.lpszMenuName = NULL
wcex.lpszClassName = "FW";
wcex.hIconSm = NULL
RegisterClassEx(&wcex);
HWND hWnd = CreateWindow(
"FW"
"Window ?òà′á?",
WS_OVERLAPPEDWINDOW
CW_USEDEFAULT,
0,
CW_USEDEFAULT,
0,
NULL,
NULL,
hInstance,
NULL);
if (NULL == hWnd)
{
return FALSE;
}
ShowWindow(hWnd, nShowCmd);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)
{
TranslateMessage(&msg)
DispatchMessage(&msg);
}
return msg.wParam;
}
long CALLBACK WndProc(HWND hWnd, int message, int wParam, int lParam)
{
switch (message)
{
case WM_CREATE:
{
::SetTimer(hWnd,1,1000,NULL);
break;
}
case WM_TIMER:
{
SYSTEMTIME time;
::GetLocalTime(&time);
HDC hdc=GetDC(hWnd);
static int h=time.wHour*5,m=time.wMinute,sc=time.wSecond;
static int X=250,Y=250,R=150;
static int Hour_R=40,Second_R=140,Minute_R=100;
static int TimeNum_X,TimeNum_Y;
static int SystemTime_S_XR,SystemTime_H_XR,SystemTime_M_XR,SystemTime_S_YR,SystemTime_H_YR,SystemTime_M_YR;
SetTextColor(hdc,RGB(0,0,250));
TextOut(hdc,160,50,"北京时间:",strlen("北京时间:"));
char s[5];
sprintf(s,"%02d",time.wHour);
SetTextColor(hdc,RGB(0,0,250));
TextOut(hdc,230,50,s,strlen(s));
TextOut(hdc,250,50," :",strlen(" :"));
sprintf(s,"%02d",time.wMinute);
SetTextColor(hdc,RGB(0,0,250));
TextOut(hdc,270,50,s,strlen(s));
TextOut(hdc,290,50,":",strlen(":"));
sprintf(s,"%02d",time.wSecond);
SetTextColor(hdc,RGB(0,0,250));
TextOut(hdc,310,50,s,strlen(s));
HPEN hPen=::CreatePen(PS_DOT,4,RGB(50,120,120));
HBRUSH hBrush=::CreateSolidBrush(RGB(255,200,25));
::SelectObject(hdc,hPen);
::SelectObject(hdc,hBrush);
Ellipse(hdc,100,100,400,400);
for(int i=0;i<60;i+=5)
{
TimeNum_X=X+(int)((R-10)*cos(i*PI/30-PI/2));
TimeNum_Y=Y+(int)((R-10)*sin(i*PI/30-PI/2));
sprintf(s,"%d",i/5);
TextOut(hdc,TimeNum_X-3,TimeNum_Y-10,s,strlen(s));
if(i ==0 )
TextOut(hdc,248,100,"12",2);
}
SystemTime_S_XR= X+(int)(Second_R*cos(sc*PI/30-PI/2));
SystemTime_M_XR= X+(int)(Minute_R*cos(m*PI/30-PI/2));
SystemTime_H_XR= X+(int)(Hour_R*cos(h*PI/30-PI/2));
SystemTime_S_YR= Y+(int)(Second_R*sin(sc*PI/30-PI/2));
SystemTime_M_YR= Y+(int)(Minute_R*sin(m*PI/30-PI/2));
SystemTime_H_YR= Y+(int)(Hour_R*sin(h*PI/30-PI/2));
hPen=CreatePen(PS_DOT,4,RGB(150,60,0));
SelectObject(hdc,hPen);
::MoveToEx(hdc,X,Y,NULL);
::LineTo(hdc,SystemTime_M_XR,SystemTime_M_YR);
::MoveToEx(hdc,X,Y,NULL);
::LineTo(hdc,SystemTime_S_XR,SystemTime_S_YR);
::MoveToEx(hdc,X,Y,NULL);
::LineTo(hdc,SystemTime_H_XR,SystemTime_H_YR);
sc++;
if(sc==60)
{
m++;sc=0;
if(m%12==0)
{
h++;
if(m==60)
{
m=0;
if(h==60)
h=0;
}
}
}
ReleaseDC(hWnd,hdc);
break;
}
case WM_DESTROY:
{
PostQuitMessage(0);
::KillTimer(hWnd,1);
break;
}
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
- 电子表
- 电子表
- JavaScript电子表
- javaScript电子表
- javascript电子表
- 电子表示例
- JavaScript-电子表
- 彩色电子表
- 电子表课程设计
- js 实现液晶电子表
- Silverlight 版的电子表
- 奇怪的电子表
- Study Silverlight《模仿电子表》
- 一个电子表的例子
- 七段码电子表程序
- js 中的电子表
- 模拟电子表的功能
- QT实现电子表digitalclock
- 在DM642上实现音频采集并以G.723.1进行实时编解码
- 通信录
- Descriptor Review
- C++惯用法:奇特的递归模板模式(Curiously Recurring Template Pattern,CRTP,Mixin-from-above)
- SQL注入建立虚拟目录,免得找Web绝对路径!
- 电子表
- 怎么为ibatis配置日志,查看执行的sql语句
- Ext.Ajax.request用法详解
- 编程语言只是种工具?
- 双击插入图片到SDK中
- 五红菜——端午习俗
- myeclipse 8.x 设置工作空间
- 新手学会使用Cocoa帮助文档
- FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )