网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月26日漏签0天
c语言吧 关注:798,850贴子:4,357,583
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1回复贴,共1页
<<返回c语言吧
>0< 加载中...

求大神给注释,谢了啊

  • 只看楼主
  • 收藏

  • 回复
  • teitan.
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define _CRT_SECURE_NO_WARNINGS
#include <windows.h>
#include <math.h>
#include <time.h>
#pragma comment(lib, "user32.lib")
#pragma comment(lib, "gdi32.lib")
#pragma comment(linker, "/SUBSYSTEM:Windows")
void GetPos(double degree, int len, int* x, int* y)
{
*x = len * sin(degree);
*y = len * cos(degree);
}
void DrawClock(HWND hw, HDC h, int hour, int minute, int second)
{
HDC bufdc = CreateCompatibleDC(h);
HBITMAP buf = CreateCompatibleBitmap(bufdc, 200, 200);
RECT cr;
HBRUSH bBg = CreateSolidBrush(RGB(255, 255, 255));
GetClientRect(hw, &cr);
SelectObject(bufdc, bBg);
SelectObject(bufdc, buf);
FillRect(bufdc, &cr, bBg);
{
int sx, sy, ex, ey;
int i;
for(i = 0; i < 12; ++i) {
GetPos(2*3.14159/12*i, 85, &sx, &sy);
GetPos(2*3.14159/12*i, 95, &ex, &ey);
MoveToEx(bufdc, 100+sx, 100-sy, 0);
LineTo(bufdc, 100+ex, 100-ey);
}
}
{
int hx, hy, mx, my, sx, sy;
GetPos(2*3.14159 / 12 * (hour + (double)minute / 60 + (double)second / 3600), 50, &hx, &hy);
GetPos(2*3.14159 / 60 * (minute + (double)second / 60), 65, &mx, &my);
GetPos(2*3.14159 / 60 * second, 80, &sx, &sy);
MoveToEx(bufdc, 100, 100, NULL);
LineTo(bufdc, 100+hx, 100-hy);
MoveToEx(bufdc, 100, 100, NULL);
LineTo(bufdc, 100+mx, 100-my);
MoveToEx(bufdc, 100, 100, NULL);
LineTo(bufdc, 100+sx, 100-sy);
}
BitBlt(h, 0, 0, 200, 200, bufdc, 0, 0, SRCCOPY);
DeleteDC(bufdc);
DeleteObject(bBg);
DeleteObject(buf);
}
LRESULT CALLBACK WndProc(HWND h, UINT m, WPARAM w, LPARAM l)
{
switch(m) {
case WM_CREATE:
SetTimer(h, 1, 1000, 0);
return 0;
case WM_ERASEBKGND:
return 1;
case WM_TIMER:
InvalidateRect(h, 0, FALSE);
return 0;
case WM_PAINT: {
PAINTSTRUCT ps;
HDC dc = BeginPaint(h, &ps);
{
time_t t;
struct tm* pst;
time(&t);
pst = localtime(&t);
DrawClock(h, dc, pst->tm_hour, pst->tm_min, pst->tm_sec);
}
EndPaint(h, &ps);
return 0;
}
case WM_DESTROY:
KillTimer(h, 1);
PostQuitMessage(0);
return 0;
default:
return DefWindowProc(h, m, w, l);
}
}
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR szCmd, INT nShow)
{
WNDCLASS wc;
ZeroMemory(&wc, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.hInstance = hInst;
wc.hbrBackground = (HBRUSH) COLOR_WINDOW;
wc.lpszClassName = TEXT("MYCLOCK");
if (RegisterClass(&wc) != 0) {
MSG m;
HWND hw = CreateWindow(TEXT("MYCLOCK"), TEXT("Clock"), WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, 0);
if (hw != NULL) {
RECT r;
GetWindowRect(hw, &r);
r.right = r.left + 200;
r.bottom = r.top + 200;
AdjustWindowRect(&r, WS_OVERLAPPEDWINDOW, FALSE);
MoveWindow(hw, r.left, r.top, r.right - r.left, r.bottom - r.top, FALSE);
ShowWindow(hw, SW_SHOWNORMAL);
UpdateWindow(hw);
while( GetMessage(&m, 0, 0, 0) > 0) {
TranslateMessage(&m);
DispatchMessage(&m);
}
return 0;
}
return 1;
} else
return 1;
}


  • teitan.
  • 毛蛋
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没人吗?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1回复贴,共1页
<<返回c语言吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示