资源简介
用c编写的模拟时钟。模拟时钟不用考虑国际化问题,但图形复杂。而且我们还需要一些三角函数知识。
已修正,既有代码亦有效果。exe在release文件夹内。可直接使用。
代码片段和文件信息
#include
#include
#define ID_TIMER 1
#define TWOPI (2 * 3.14159)
LRESULT CALLBACK WndProc (HWND UINT WPARAM LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance HINSTANCE hPrevInstance
PSTR szCmdLine int iCmdShow)
{
static TCHAR szAppName[] = TEXT (“Clock“) ;
HWND hwnd;
MSG msg;
WNDCLASS wndclass ;
wndclass.style = CS_HREDRAW | CS_VREDRAW ;
wndclass.lpfnWndProc = WndProc ;
wndclass.cbClsExtra = 0 ;
wndclass.cbWndExtra = 0 ;
wndclass.hInstance = hInstance ;
wndclass.hIcon = NULL ;
wndclass.hCursor = LoadCursor (NULL IDC_ARROW) ;
wndclass.hbrBackground = (HBRUSH) GetStockobject (WHITE_BRUSH) ;
wndclass.lpszMenuName = NULL ;
wndclass.lpszClassName = szAppName ;
if (!RegisterClass (&wndclass))
{
MessageBox (NULL TEXT (“Program requires Windows NT!“)
szAppName MB_IConerror) ;
return 0 ;
}
hwnd = CreateWindow (szAppName TEXT (“Analog Clock“)
WS_OVERLAPPEDWINDOW
CW_USEDEFAULT CW_USEDEFAULT
CW_USEDEFAULT CW_USEDEFAULT
NULL NULL hInstance NULL) ;
ShowWindow (hwnd iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg NULL 0 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
void SetIsotropic (HDC hdc int cxClient int cyClient)
{
SetMapMode (hdc MM_ISOTROPIC) ;
SetWindowExtEx (hdc 1000 1000 NULL) ;
SetViewportExtEx (hdc cxClient / 2 -cyClient / 2 NULL) ;
SetViewportOrgEx (hdc cxClient / 2 cyClient / 2 NULL) ;
}
void RotatePoint (POINT pt[] int iNum int iAngle)
{
int i ;
POINT ptTemp ;
for (i = 0 ; i < iNum ; i++)
{
ptTemp.x = (int) (pt[i].x * cos (TWOPI * iAngle / 360) +
pt[i].y * sin (TWOPI * iAngle / 360)) ;
ptTemp.y = (int) (pt[i].y * cos (TWOPI * iAngle / 360) -
pt[i].x * sin (TWOPI * iAngle / 360)) ;
pt[i] = ptTemp ;
}
}
void DrawClock (HDC hdc)
{
int iAngle ;
POINT pt[3] ;
for (iAngle = 0 ; iAngle < 360 ; iAngle += 6)
{
pt[0].x = 0 ;
pt[0].y = 900 ;
RotatePoint (pt 1 iAngle) ;
pt[2].x = pt[2].y = iAngle % 5 ? 33 : 100 ;
pt[0].x -= pt[2].x / 2 ;
pt[0].y -= pt[2].y / 2 ;
pt[1].x = pt[0].x + pt[2].x ;
pt[1].y = pt[0].y + pt[2].y ;
Selectobject (hdc GetStockobject (BLACK_BRUSH)) ;
Ellipse (hdc pt[0].x pt[0].y pt[1].x pt[1].y) ;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-12-08 10:34 Clock\
文件 5513 2013-12-08 10:34 Clock\Clock.c
文件 875 2009-09-25 12:05 Clock\Clock.sln
文件 8192 2009-09-25 12:05 Clock\Clock.suo
文件 5055 2009-09-25 12:05 Clock\Clock.vcproj
目录 0 2013-12-08 10:34 Clock\Debug\
文件 485888 2009-09-25 12:05 Clock\Debug\Clock.exe
目录 0 2013-12-08 10:34 Clock\Release\
文件 64000 2009-09-25 12:05 Clock\Release\Clock.exe
相关资源
- blas_win32.lib
- win32 汇编写的虚拟钢琴 多种音色 仿真
- win32汇编实现贪吃蛇
- netcat-win32
- 定点数机器码转换器原码、反码、补
- 进程解锁软件 unclock
- Q760642.zip windows程序设计 编写Windows窗
- setuptools-0.6c11.win32-py2.7.exe
- 汇编课设——一个win32计算器功能完整
- 基于win32的象棋游戏
- 操作系统页面内存页面置换算法OPT、
- win32 扫雷游戏
- Win32API编程入门
- Win32标准输出重定向VS2015通用实现
- MTTTY (Multi-Threaded TTY)
- 我的拼图游戏WIN32编程
- linux和win32下通用的互斥锁Mutex封装
- Win32汇编的扫雷不完全版本
- Win32 API大全.chm 帮助文档 速查手册
- Win32 Hooks 钩子详细介绍
- WIN32游戏实现
- 纯Win32 API 编写的截图小工具
- Eclipse64位4.5火星版eclipse-jee-mars-2-win
- Open62541 win32 动态库
- Eclipse32位4.5火星版eclipse-jee-mars-2-win
- Eclipse32位4.3.2开普勒版eclipse-jee-keple
- 用win32GDI函数编程推箱子
- 编译jepglib需要的Win32.Mak
- eclipse-jee-mars-2-win32-x86_64火星版本
- libjpeg lib文件
评论
共有 条评论