64,685
社区成员
发帖
与我相关
我的任务
分享
for (i=0;i<12;i++)//12点
{
SelectObject(hdcMem,GetStockObject(WHITE_PEN));
Ellipse(hdcMem,
(KUAN/2+KUAN*36/80*sin(HUDU(i*30))-KUAN/40+1),
(KUAN/2-KUAN*36/80*cos(HUDU(i*30))-KUAN/40+1),
(KUAN/2+KUAN*36/80*sin(HUDU(i*30))+KUAN/40+1),
(KUAN/2-KUAN*36/80*cos(HUDU(i*30))+KUAN/40+1));
SelectObject(hdcMem,hPen[6]);
SelectObject(hdcMem,hBrush[r[1]]);
Ellipse(hdcMem,
(KUAN/2+KUAN*36/80*sin(HUDU(i*30))-KUAN/40),
(KUAN/2-KUAN*36/80*cos(HUDU(i*30))-KUAN/40),
(KUAN/2+KUAN*36/80*sin(HUDU(i*30))+KUAN/40),
(KUAN/2-KUAN*36/80*cos(HUDU(i*30))+KUAN/40));
}
for (i=0;i<60;i++)//60点
{
if(i%5==0)continue;
SetPixel(hdcMem,
(KUAN/2+KUAN*37/80*sin(HUDU(i*6))),
(KUAN/2-KUAN*37/80*cos(HUDU(i*6))),
0x12);
SetPixel(hdcMem,
(KUAN/2+KUAN*37/80*sin(HUDU(i*6))+1),
(KUAN/2-KUAN*37/80*cos(HUDU(i*6))+1),
0xffffff);
}
GetLocalTime(&tm);
wsprintf(sz,"%02d:%02d:%02d",tm.wHour,tm.wMinute,tm.wSecond);
TextOut(hdcMem,KUAN/2,KUAN*2/3,sz,strlen(sz));
//分针
iJiaoDuFenZhen=tm.wMinute*6+tm.wSecond/10;
SelectObject(hdcMem,GetStockObject(NULL_PEN));
SelectObject(hdcMem,GetStockObject(DKGRAY_BRUSH));
pts[0].x=KUAN/2-KUAN*9/80*sin(HUDU(iJiaoDuFenZhen-1));
pts[0].y=KUAN/2+KUAN*9/80*cos(HUDU(iJiaoDuFenZhen-1));
pts[1].y=KUAN/2-KUAN*2/80*sin(HUDU(iJiaoDuFenZhen-1));
pts[1].x=KUAN/2-KUAN*2/80*cos(HUDU(iJiaoDuFenZhen-1));
pts[2].x=KUAN/2+KUAN*30/80*sin(HUDU(iJiaoDuFenZhen-1));
pts[2].y=KUAN/2-KUAN*30/80*cos(HUDU(iJiaoDuFenZhen-1));
pts[3].y=KUAN/2+KUAN*2/80*sin(HUDU(iJiaoDuFenZhen-1));
pts[3].x=KUAN/2+KUAN*2/80*cos(HUDU(iJiaoDuFenZhen-1));
Polygon(hdcMem,pts,4);
SelectObject(hdcMem,GetStockObject(WHITE_BRUSH));
pts[0].x=KUAN/2-KUAN*9/80*sin(HUDU(iJiaoDuFenZhen+1));
pts[0].y=KUAN/2+KUAN*9/80*cos(HUDU(iJiaoDuFenZhen+1));
pts[1].y=KUAN/2-KUAN*2/80*sin(HUDU(iJiaoDuFenZhen+1));
pts[1].x=KUAN/2-KUAN*2/80*cos(HUDU(iJiaoDuFenZhen+1));
pts[2].x=KUAN/2+KUAN*30/80*sin(HUDU(iJiaoDuFenZhen+1));
pts[2].y=KUAN/2-KUAN*30/80*cos(HUDU(iJiaoDuFenZhen+1));
pts[3].y=KUAN/2+KUAN*2/80*sin(HUDU(iJiaoDuFenZhen+1));
pts[3].x=KUAN/2+KUAN*2/80*cos(HUDU(iJiaoDuFenZhen+1));
Polygon(hdcMem,pts,4);
SelectObject(hdcMem,hBrush[r[3]]);
pts[0].x=KUAN/2-KUAN*9/80*sin(HUDU(iJiaoDuFenZhen));
pts[0].y=KUAN/2+KUAN*9/80*cos(HUDU(iJiaoDuFenZhen));
pts[1].y=KUAN/2-KUAN*2/80*sin(HUDU(iJiaoDuFenZhen));
pts[1].x=KUAN/2-KUAN*2/80*cos(HUDU(iJiaoDuFenZhen));
pts[2].x=KUAN/2+KUAN*30/80*sin(HUDU(iJiaoDuFenZhen));
pts[2].y=KUAN/2-KUAN*30/80*cos(HUDU(iJiaoDuFenZhen));
pts[3].y=KUAN/2+KUAN*2/80*sin(HUDU(iJiaoDuFenZhen));
pts[3].x=KUAN/2+KUAN*2/80*cos(HUDU(iJiaoDuFenZhen));
Polygon(hdcMem,pts,4);
//时针
iJiaoDuShiZhen=tm.wHour*30+tm.wMinute/2+tm.wSecond/120;
SelectObject(hdcMem,GetStockObject(NULL_PEN));
SelectObject(hdcMem,GetStockObject(DKGRAY_BRUSH));
pts[0].x=KUAN/2-KUAN*6/80*sin(HUDU(iJiaoDuShiZhen-1));
pts[0].y=KUAN/2+KUAN*6/80*cos(HUDU(iJiaoDuShiZhen-1));
pts[1].y=KUAN/2-KUAN*3/80*sin(HUDU(iJiaoDuShiZhen-1));
pts[1].x=KUAN/2-KUAN*3/80*cos(HUDU(iJiaoDuShiZhen-1));
pts[2].x=KUAN/2+KUAN*20/80*sin(HUDU(iJiaoDuShiZhen-1));
pts[2].y=KUAN/2-KUAN*20/80*cos(HUDU(iJiaoDuShiZhen-1));
pts[3].y=KUAN/2+KUAN*3/80*sin(HUDU(iJiaoDuShiZhen-1));
pts[3].x=KUAN/2+KUAN*3/80*cos(HUDU(iJiaoDuShiZhen-1));
Polygon(hdcMem,pts,4);
SelectObject(hdcMem,GetStockObject(WHITE_BRUSH));
pts[0].x=KUAN/2-KUAN*6/80*sin(HUDU(iJiaoDuShiZhen+1));
pts[0].y=KUAN/2+KUAN*6/80*cos(HUDU(iJiaoDuShiZhen+1));
pts[1].y=KUAN/2-KUAN*3/80*sin(HUDU(iJiaoDuShiZhen+1));
pts[1].x=KUAN/2-KUAN*3/80*cos(HUDU(iJiaoDuShiZhen+1));
pts[2].x=KUAN/2+KUAN*20/80*sin(HUDU(iJiaoDuShiZhen+1));
pts[2].y=KUAN/2-KUAN*20/80*cos(HUDU(iJiaoDuShiZhen+1));
pts[3].y=KUAN/2+KUAN*3/80*sin(HUDU(iJiaoDuShiZhen+1));
pts[3].x=KUAN/2+KUAN*3/80*cos(HUDU(iJiaoDuShiZhen+1));
Polygon(hdcMem,pts,4);
SelectObject(hdcMem,hBrush[r[2]]);
pts[0].x=KUAN/2-KUAN*6/80*sin(HUDU(iJiaoDuShiZhen));
pts[0].y=KUAN/2+KUAN*6/80*cos(HUDU(iJiaoDuShiZhen));
pts[1].y=KUAN/2-KUAN*3/80*sin(HUDU(iJiaoDuShiZhen));
pts[1].x=KUAN/2-KUAN*3/80*cos(HUDU(iJiaoDuShiZhen));
pts[2].x=KUAN/2+KUAN*20/80*sin(HUDU(iJiaoDuShiZhen));
pts[2].y=KUAN/2-KUAN*20/80*cos(HUDU(iJiaoDuShiZhen));
pts[3].y=KUAN/2+KUAN*3/80*sin(HUDU(iJiaoDuShiZhen));
pts[3].x=KUAN/2+KUAN*3/80*cos(HUDU(iJiaoDuShiZhen));
Polygon(hdcMem,pts,4);
//秒针
iJiaoDuMiaoZhen=tm.wSecond*6+tm.wMilliseconds*6/1000;
SelectObject(hdcMem,hPen[r[4]]);
SelectObject(hdcMem,hBrush[r[4]]);
pts[0].x=KUAN/2-KUAN*3/80*sin(HUDU(iJiaoDuMiaoZhen));
pts[0].y=KUAN/2+KUAN*3/80*cos(HUDU(iJiaoDuMiaoZhen));
pts[1].y=KUAN/2-1*sin(HUDU(iJiaoDuMiaoZhen));
pts[1].x=KUAN/2-1*cos(HUDU(iJiaoDuMiaoZhen));
pts[2].x=KUAN/2+KUAN*30/80*sin(HUDU(iJiaoDuMiaoZhen));
pts[2].y=KUAN/2-KUAN*30/80*cos(HUDU(iJiaoDuMiaoZhen));
pts[3].y=KUAN/2+1*sin(HUDU(iJiaoDuMiaoZhen));
pts[3].x=KUAN/2+1*cos(HUDU(iJiaoDuMiaoZhen));
Polygon(hdcMem,pts,4);
// //毫秒针
// iJiaoDuHaoMiao=tm.wMilliseconds*6;
// SelectObject(hdcMem,GetStockObject(WHITE_PEN));
// MoveToEx(hdcMem,KUAN/2,KUAN/2,NULL);
// LineTo(hdcMem,
// (KUAN/2+KUAN*16/80*sin(HUDU(iJiaoDuHaoMiao))-3),
// (KUAN/2-KUAN*16/80*cos(HUDU(iJiaoDuHaoMiao))-3));
hdc=GetDC(hWnd);
BitBlt(hdc,0,0,KUAN,KUAN,hdcMem,0,0,SRCCOPY);
ReleaseDC(hWnd,hdc);
break;
case WM_LBUTTONDOWN:
SendMessage(hWnd,WM_NCLBUTTONDOWN,HTCAPTION,lParam);
break;
case WM_PAINT:
hdc=BeginPaint(hWnd,&ps);
EndPaint(hWnd,&ps);
break;
case WM_LBUTTONDBLCLK:
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd,msg,wParam,lParam);
}
// void extern "C" WinMainCRTStartup()
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
hMut=OpenMutex(MUTEX_ALL_ACCESS,0,"sj");
if(hMut)
{
return 0;
}
hMut=CreateMutex(0,0,"sj");
hInst=GetModuleHandle(0);
WNDCLASS wc;
wc.cbClsExtra=0;
wc.cbWndExtra=0;
wc.hbrBackground=(HBRUSH)(GetStockObject(BLACK_BRUSH));
wc.hCursor=LoadCursor(NULL,IDC_ARROW);
wc.hIcon=LoadIcon(NULL,IDI_QUESTION);
wc.hInstance=hInst;
wc.lpfnWndProc=Pro;
wc.lpszClassName="xwf";
wc.lpszMenuName=NULL;
wc.style=CS_DBLCLKS;
RegisterClass(&wc);
HWND hWnd;
cxscreen=GetSystemMetrics(SM_CXSCREEN);
cyscreen=GetSystemMetrics(SM_CYSCREEN);
hWnd=CreateWindowEx(WS_EX_TOPMOST|WS_EX_LAYERED|WS_EX_TOOLWINDOW,"xwf",NULL,WS_POPUP|WS_SYSMENU,
cxscreen-KUAN-20,20,KUAN,KUAN,NULL,NULL,hInst,NULL);
HMODULE hmod=LoadLibrary("user32.dll");
fp=(FPT)GetProcAddress(hmod,"SetLayeredWindowAttributes");
FreeLibrary(hmod);
ShowWindow(hWnd,SW_SHOW);
UpdateWindow(hWnd);
MSG msg;
while (GetMessage(&msg,0,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
#include <math.h>
#include <windows.h>
#include "resource.h"
#define KUAN 360
#define WS_EX_LAYERED 0x80000
#define HUDU(a) (3.1415*(a)/180.0)
typedef BOOL (WINAPI*FPT)(HWND,int,BOOL,DWORD);
FPT fp;
HINSTANCE hInst;
HPEN hPen[7];
HBRUSH hBrush[7];
int cxscreen,cyscreen;
SYSTEMTIME tm;
int iJiaoDuShiZhen,iJiaoDuFenZhen,iJiaoDuMiaoZhen,iJiaoDuHaoMiao;
HDC hdcMem;
HBITMAP hBitMap;
HANDLE hMut;
int i;
BOOL WINAPI Pro2(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
if(msg==WM_COMMAND)
{
if(wParam==IDOK)EndDialog(hWnd,0);
return 1;
}
return 0;
}
LRESULT WINAPI Pro(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static int iTouMing=255;
static int iJiaJianTouMingDu=-10;
static int r[7];
int j;
char sz[32];
POINT pts[4];
HMENU hMenu;
static BOOL bBeiJing;
HPEN hPenj;
static int icolors[]={0xff,0xff00,0xff0000,0xffff,0xffff00,0xff00ff,0x99ff};
switch(msg)
{
case WM_CREATE:
hPen[0]=CreatePen(6|PS_ENDCAP_ROUND,1,0xff);
hPen[1]=CreatePen(6|PS_ENDCAP_ROUND,1,0xff00);
hPen[2]=CreatePen(6|PS_ENDCAP_ROUND,1,0xff0000);
hPen[3]=CreatePen(6|PS_ENDCAP_ROUND,1,0xffff);
hPen[4]=CreatePen(6|PS_ENDCAP_ROUND,1,0xffff00);
hPen[5]=CreatePen(6|PS_ENDCAP_ROUND,1,0xff00ff);
hPen[6]=CreatePen(6|PS_ENDCAP_ROUND,1,1);
hBrush[0]=CreateSolidBrush(0xff);
hBrush[1]=CreateSolidBrush(0xff00);
hBrush[2]=CreateSolidBrush(0xff0000);
hBrush[3]=CreateSolidBrush(0xffff);
hBrush[4]=CreateSolidBrush(0xffff00);
hBrush[5]=CreateSolidBrush(0xff00ff);
hBrush[6]=CreateSolidBrush(0x99ff);
hdcMem=CreateCompatibleDC(NULL);
SetBkMode(hdcMem,0);
SetTextAlign(hdcMem,TA_CENTER);
SetTimer(hWnd,1,40,NULL);
break;
case WM_SIZE:
if(hBitMap)
{
SelectObject(hdcMem,(HBITMAP)NULL);
DeleteObject(hBitMap);
}
hdc=GetDC(hWnd);
hBitMap=CreateCompatibleBitmap(hdc,KUAN,KUAN);
ReleaseDC(hWnd,hdc);
SelectObject(hdcMem,hBitMap);
break;
case WM_RBUTTONDOWN:
GetCursorPos(pts);
hMenu=LoadMenu(hInst,LPCSTR(IDR_MENU1));
hMenu=GetSubMenu(hMenu,0);
TrackPopupMenu(hMenu,TPM_LEFTALIGN,pts[0].x,pts[0].y,0,hWnd,NULL);
break;
case WM_MOUSEMOVE:
bBeiJing=75;
break;
case WM_COMMAND:
switch(wParam)
{
case ID_TUICHU:
PostQuitMessage(0);
break;
case ID_GUANYU:
DialogBoxParam(hInst,LPCSTR(IDD_DIALOG1),hWnd,Pro2,0);
break;
}
break;
case WM_TIMER:
fp(hWnd,0,iTouMing,3);
iTouMing+=iJiaJianTouMingDu;
if(iTouMing>=230){iTouMing=230;iJiaJianTouMingDu=-6;}
if(iTouMing<=20)
{
SetTextColor(hdcMem,RGB(rand()%200+55,rand()%200+55,rand()%200+55));
iTouMing=20;
iJiaJianTouMingDu=6;
for (i=0;i<7;i++)
{
SuiJi:
r[i]=rand()%7;
for (j=0;j<i;j++)
{
if(r[i]==r[j])goto SuiJi;
}
}
}
SelectObject(hdcMem,GetStockObject(BLACK_BRUSH));
PatBlt(hdcMem,0,0,KUAN,KUAN,PATCOPY);
if(bBeiJing)
{
bBeiJing--;
SelectObject(hdcMem,GetStockObject(DKGRAY_BRUSH));
Ellipse(hdcMem,0,0,KUAN,KUAN);
}
SelectObject(hdcMem,hBrush[r[0]]);
BeginPath(hdcMem);
Ellipse(hdcMem,0,0,KUAN,KUAN);
Ellipse(hdcMem,KUAN/20,KUAN/20,KUAN-KUAN/20,KUAN-KUAN/20);
EndPath(hdcMem);
FillPath(hdcMem);
//未完待续