定时变色

/*------------------------------------------------------------------------
   DEVCAPS1.C -- Device Capabilities Display Program No. 1
	         (c) Charles Petzold, 1998
 ----------------------------------------------------------------------*/
#include <windows.h>

#define ID_TIMER 1

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
            PSTR szCmdLine, int iCmdShow)
{
	static TCHAR szAppName[] = TEXT ("Beeper1") ;
	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 		= LoadIcon (NULL, IDI_APPLICATION) ;
	wndclass.hCursor	= LoadCursor (NULL, IDC_ARROW) ;
	wndclass.hbrBackground	= (HBRUSH) GetStockObject (WHITE_BRUSH) ;
	wndclass.lpszMenuName	= NULL ;
	wndclass.lpszClassName	= szAppName ;

	if (!RegisterClass (&wndclass))
	{
		MessageBox (	NULL, TEXT ("This program requires Windows NT!"),
             				szAppName, MB_ICONERROR) ;
		return 0 ;
     }

	hwnd = CreateWindow (	szAppName, TEXT ("Beeper1 Timer Demo"),
                				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 ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	
	HDC		hdc ;
	int		i ;
	PAINTSTRUCT	ps ;
	static BOOL fFlipFlop = FALSE;
	HBRUSH		hBrush;
	RECT      rc;


	

	static HRGN hRgnClip , hRgnPart, hRgnFull;
	HRGN        hRgnTemp[2];


	switch (message)
     {
	
	case WM_CREATE:
		 SetTimer(hwnd, ID_TIMER, 1000, NULL);
		 return 0;

	case WM_TIMER:
		 MessageBeep(-1);
		 fFlipFlop = !fFlipFlop;
		 InvalidateRect(hwnd, NULL, FALSE);
		 return 0;

	case WM_PAINT:
		hdc = BeginPaint(hwnd, &ps);

		GetClientRect(hwnd, &rc);
		//hBrush = CreateSolidBrush(fFlipFlop ? RGB(255,0,0) : RGB(0,0,255));
		hBrush = CreateSolidBrush( RGB(rand()%256, rand() % 256, rand() % 256));
		FillRect(hdc, &rc, hBrush);

		EndPaint(hwnd, &ps);
		DeleteObject(hBrush);
		
		return 0 ;

	case WM_DESTROY:
		KillTimer(hwnd, ID_TIMER);
		PostQuitMessage (0) ;
		return 0 ;
	}
	return DefWindowProc (hwnd, message, wParam, lParam) ;
}
TimerProc
/*------------------------------------------------------------------------
   DEVCAPS1.C -- Device Capabilities Display Program No. 1
	         (c) Charles Petzold, 1998
 ----------------------------------------------------------------------*/
#include 
  
  
   
   

#define ID_TIMER 1

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
VOID CALLBACK  TimerProc(HWND ,UINT, UINT, DWORD);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
            PSTR szCmdLine, int iCmdShow)
{
	static TCHAR szAppName[] = TEXT ("Beeper2") ;
	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 		= LoadIcon (NULL, IDI_APPLICATION) ;
	wndclass.hCursor	= LoadCursor (NULL, IDC_ARROW) ;
	wndclass.hbrBackground	= (HBRUSH) GetStockObject (WHITE_BRUSH) ;
	wndclass.lpszMenuName	= NULL ;
	wndclass.lpszClassName	= szAppName ;

	if (!RegisterClass (&wndclass))
	{
		MessageBox (	NULL, TEXT ("This program requires Windows NT!"),
             				szAppName, MB_ICONERROR) ;
		return 0 ;
     }

	hwnd = CreateWindow (	szAppName, TEXT ("Beeper2 Timer Demo"),
                				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 ;
}

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	
	HDC		hdc ;
	int		i ;
	PAINTSTRUCT	ps ;
	static BOOL fFlipFlop = FALSE;
	HBRUSH		hBrush;
	RECT      rc;


	

	static HRGN hRgnClip , hRgnPart, hRgnFull;
	HRGN        hRgnTemp[2];


	switch (message)
     {
	
	case WM_CREATE:
		 SetTimer(hwnd, ID_TIMER, 1000, TimerProc);
		 return 0;

	case WM_TIMER:
		 MessageBeep(-1);
		 fFlipFlop = !fFlipFlop;
		 InvalidateRect(hwnd, NULL, FALSE);
		 return 0;

	case WM_PAINT:
		hdc = BeginPaint(hwnd, &ps);

		GetClientRect(hwnd, &rc);
		//hBrush = CreateSolidBrush(fFlipFlop ? RGB(255,0,0) : RGB(0,0,255));
		hBrush = CreateSolidBrush( RGB(rand()%256, rand() % 256, rand() % 256));
		FillRect(hdc, &rc, hBrush);

		EndPaint(hwnd, &ps);
		DeleteObject(hBrush);
		
		return 0 ;

	case WM_DESTROY:
		KillTimer(hwnd, ID_TIMER);
		PostQuitMessage (0) ;
		return 0 ;
	}
	return DefWindowProc (hwnd, message, wParam, lParam) ;
}

VOID CALLBACK TimerProc(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
{
	static BOOL fFlipFlop = FALSE;
	HBRUSH    hBrush;
	HDC       hdc;
	RECT      rc;

	MessageBeep(-1);
	fFlipFlop = !fFlipFlop;

	GetClientRect(hwnd, &rc);
	hdc = GetDC(hwnd);
	hBrush = CreateSolidBrush(fFlipFlop ? RGB(255,0,0) : RGB(0,0,255));

	FillRect(hdc, &rc, hBrush);
	ReleaseDC(hwnd, hdc);
	DeleteObject(hBrush);

}


  
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值