sunshineman1986

我制作的跑马灯程序

#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#define Pi 3.141592653

long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam);
													//消息处理函数声明.

int WINAPI WinMain(HINSTANCE hInstance,
				   HINSTANCE hPrevInstance,
				   LPSTR lpCmdLine,
				   int nCmdShow)			//主函数
{
	MSG Message;			//定义消息变量.
	HWND hWnd;				//定义窗口句柄.

	WNDCLASS WndClass;		//定义窗口类.
	WndClass.cbClsExtra=0;		//无窗口类扩展.
	WndClass.cbWndExtra=0;		//无窗口实例扩展.
	WndClass.hbrBackground=(HBRUSH)(GetStockObject(BLACK_BRUSH));//背景为黑色.
	WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);	//窗口采用箭头光标.
	WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);	//采用缺省图标.
	WndClass.hInstance=hInstance;					//当前应用程序句柄.
	WndClass.lpfnWndProc=WndProc;					//窗口处理函数.
	WndClass.lpszClassName="跑马灯";				//窗口类名称.
	WndClass.lpszMenuName=NULL;						//无窗口菜单.
	WndClass.style=0;								//窗口类型为缺省类型.

	if(!RegisterClass(&WndClass))			//注册窗口.
	{
		MessageBeep(0);
		return FALSE;
	}
	
	hWnd=CreateWindow("跑马灯",				//窗口类名.可以用中文!
					"圆形跑马灯",			//标题名.
					WS_OVERLAPPEDWINDOW,	//带标题栏,最大和最小按钮的窗口.
					150,			//窗口左上角坐标.
					0,						
					720,			//采用缺省的宽度和高度.
					730,
					NULL,					//无父窗口.
					NULL,					//无主菜单.
					hInstance,				//当前实例句柄.
					NULL);					//不要此参数.
	ShowWindow(hWnd,nCmdShow);			//显示窗口.
	UpdateWindow(hWnd);					//更新并绘制用户区.
	
	while(GetMessage(&Message,0,0,0))
	{
		TranslateMessage(&Message);			//消息循环.
		DispatchMessage(&Message);
	}
	return Message.wParam;
}

long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)	//消息处理函数.
{
	HDC hDC;				//定义设备环境句柄.
	HBRUSH hBrush;			//定义画刷句柄
	HPEN hPen;				//定义画笔句柄
	PAINTSTRUCT PtStr;		//定义包含绘图信息的结构体变量
	int step = 15;      //彩灯的间隔角度
	int radius = 35;    //彩灯的半径 
	//变量的定义都要拿到switch结构的前面来,不能放到case语句中

	switch(iMessage)
	{
	case WM_PAINT:							//处理绘图消息.
		hDC=BeginPaint(hWnd,&PtStr);		//获得设备环境指针.
		SetWindowOrgEx(hDC,0,0,NULL);	    //设置原点坐标为(0,0).
		//debug经验:原点的位置永远是左上角,并不会移动,所以只能动坐标
		
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		SelectObject(hDC,hPen);					//选入画笔.
		Arc(hDC,350-300,350-300,350+300,350+300,350,350-300,350,350-300);
		DeleteObject(hPen);

		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		SelectObject(hDC,hPen);					//选入画笔.
		for(int i = 0; i < 360; i = i + step){
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//debug发现不加强制类型转换(int)也可编译通过;注意角度与弧度的转换
		//而且Pie()函数有“缝合线”遗留,Ellipse()函数没有多余的线
		}  
		DeleteObject(hPen);
		DeleteObject(hBrush);
	
		//第一种变化:顺时针,灯依次点亮,绕圆一周
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		hBrush=CreateSolidBrush(RGB(255,255,255));
		SelectObject(hDC,hBrush);
		SelectObject(hDC,hPen);					//选入画笔.
		for(int i = 0; i < 360; i = i + step){
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
        Sleep(100);             //停0.1秒.  
		}
		DeleteObject(hPen);  
		DeleteObject(hBrush);
		
		//第二种变化:顺时针,灯依次熄灭,绕圆一周
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		SelectObject(hDC,hPen);					//选入画笔.
		for(int i = 0; i < 360; i = i + step){
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		Sleep(100);             //停0.1秒.
		} 
		DeleteObject(hPen);
		DeleteObject(hBrush);
		
		//第三种变化:顺时针,仅一盏灯点亮,绕圆两周
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		SelectObject(hDC,hPen);					//选入画笔.
		for(int j = 0; j < 2; j++){
		for(int i = 0; i < 360; i = i + step){
		hBrush=CreateSolidBrush(RGB(255,255,255));
		SelectObject(hDC,hBrush);
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
        Sleep(100);             //停0.1秒.  
		DeleteObject(hBrush);

		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		}
		}
		DeleteObject(hPen);  
		DeleteObject(hBrush);
		
		//第四种变化:顺时针,对称四盏灯点亮,绕圆两周
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		SelectObject(hDC,hPen);					//选入画笔.
		for(int j = 0; j < 2; j++){
		for(int i = 0; i < 360; i = i + step){
		hBrush=CreateSolidBrush(RGB(255,255,255));
		SelectObject(hDC,hBrush);
		//正上方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//正右方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) + radius));
		//正下方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) + radius));
		//正左方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) + radius));
        Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);

		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		//正上方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//正右方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) + radius));
		//正下方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) + radius));
		//正左方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) + radius));
		DeleteObject(hBrush);
		}
		}
		DeleteObject(hPen);  
		DeleteObject(hBrush);

		//第五种变化:顺时针,对称四盏灯依次点亮,然后逆时针依次熄灭,重复两次
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		SelectObject(hDC,hPen);					//选入画笔.
		for(int j = 0; j < 2; j++){
		for(int i = 0; i <= 90; i = i + step){
		hBrush=CreateSolidBrush(RGB(255,255,255));
		SelectObject(hDC,hBrush);
		//正上方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//正右方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) + radius));
		//正下方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) + radius));
		//正左方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) + radius));
        Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		for(int i = 0; i >= -90; i = i - step){
		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		//正上方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//正右方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) + radius));
		//正下方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) + radius));
		//正左方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) + radius));
		Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		}
		DeleteObject(hPen);  
		DeleteObject(hBrush);
		
		//第六种变化:顺时针,对称四盏灯依次点亮,然后顺时针依次熄灭,重复两次
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		SelectObject(hDC,hPen);					//选入画笔.
		for(int j = 0; j < 2; j++){
		for(int i = 0; i <= 90; i = i + step){
		hBrush=CreateSolidBrush(RGB(255,255,255));
		SelectObject(hDC,hBrush);
		//正上方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//正右方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) + radius));
		//正下方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) + radius));
		//正左方一盏灯,点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) + radius));
        Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		for(int i = 0; i <= 90; i = i + step){
		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		//正上方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//正右方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 90) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 90) / 360) + radius));
		//正下方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) + radius));
		//正左方一盏灯,熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 270) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 270) / 360) + radius));
		Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		}
		DeleteObject(hPen);  
		DeleteObject(hBrush);
		
		//第七种变化:从正上方开始,对称两盏灯依次点亮,然后反方向依次熄灭,绕圆一周
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		SelectObject(hDC,hPen);					//选入画笔.
		for(int k = 0; k < 1; k++){//变量 k 预留,可调节绕圆次数
		for(int i = 0, j = 0; i <= 180 && j >= -180; i = i + step, j = j - step){
		hBrush=CreateSolidBrush(RGB(255,255,255));
		SelectObject(hDC,hBrush);
		//顺时针方向的半圈灯,依次点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//逆时针方向的半圈灯,依次点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * j / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * j / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * j / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * j / 360) + radius));
        Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		for(int i = 0, j = 0; i <= 180 && j >= -180; i = i + step, j = j - step){
		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		//逆时针方向的半圈灯,依次熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (i + 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (i + 180) / 360) + radius));
		//顺时针方向的半圈灯,依次熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * (j - 180) / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * (j - 180) / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * (j - 180) / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * (j - 180) / 360) + radius));
		Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		}
		DeleteObject(hPen);  
		DeleteObject(hBrush);
		
		//第八种变化:从正上方开始,对称两盏灯依次点亮,然后同方向依次熄灭,绕圆一周
		hPen=CreatePen(PS_SOLID,1,RGB(255,255,255));	//创建新画笔.
		SelectObject(hDC,hPen);					//选入画笔.
		for(int k = 0; k < 1; k++){//变量 k 预留,可调节绕圆次数
		for(int i = 0, j = 0; i <= 180 && j >= -180; i = i + step, j = j - step){
		hBrush=CreateSolidBrush(RGB(255,255,255));
		SelectObject(hDC,hBrush);
		//顺时针方向的半圈灯,依次点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//逆时针方向的半圈灯,依次点亮
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * j / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * j / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * j / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * j / 360) + radius));
        Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		for(int i = 0, j = 0; i <= 180 && j >= -180; i = i + step, j = j - step){
		hBrush=CreateSolidBrush(RGB(0,0,0));
		SelectObject(hDC,hBrush);
		//逆时针方向的半圈灯,依次熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * i / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * i / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * i / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * i / 360) + radius));
		//顺时针方向的半圈灯,依次熄灭
		Ellipse(hDC, 
			(int)(350 + 300 * sin(2 * Pi * j / 360) - radius),
			(int)(350 - 300 * cos(2 * Pi * j / 360) - radius),
			(int)(350 + 300 * sin(2 * Pi * j / 360) + radius), 
			(int)(350 - 300 * cos(2 * Pi * j / 360) + radius));
		Sleep(100);             //停0.1秒. 
		DeleteObject(hBrush);
		}
		}
		DeleteObject(hPen);  
		DeleteObject(hBrush);

		EndPaint(hWnd,&PtStr);	//删除设备环境指针.
		if(1) InvalidateRect(hWnd,NULL,1);   //刷新用户区.
		return 0;

	case WM_DESTROY:	//关闭窗口.
		PostQuitMessage(0);
		return 0;

	default:
		return(DefWindowProc(hWnd,iMessage,wParam,lParam));
	}
}

完整演示视频链接:

http://v.youku.com/v_show/id_XMzA2NDAyMTMzNg==.html?spm=a2h3j.8428770.3416059.1#paction

分类:

技术点:

相关文章: