标签:
#include<windows.h>
#include<tchar.h>
#define TIME 5
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
WNDCLASS clock;
static TCHAR* szAppName = TEXT("定时唤醒程序");
HWND hwnd = NULL;
MSG msg;
clock.style = CS_HREDRAW | CS_VREDRAW;
clock.lpfnWndProc = WndProc;
clock.cbClsExtra = 0;
clock.cbWndExtra = 0;
clock.hInstance = hInstance;
clock.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
clock.hCursor = LoadCursor(NULL, IDC_ARROW);
clock.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
clock.lpszMenuName = NULL;
clock.lpszClassName = szAppName;
if (!RegisterClass(&clock))
{
MessageBox(NULL, TEXT("这个程序只能在Win32下运行!"), TEXT("错误!!!"), MB_ICONERROR);
return 0;
}
hwnd = CreateWindow(szAppName,
TEXT("休息休息!"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
400,
100,
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;
PAINTSTRUCT ps;
RECT rect;
TCHAR words[1024];
switch (message)
{
case WM_CREATE:
SetTimer(hwnd, 1, 1000 * 60 * TIME, NULL);
break;
case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
GetClientRect(hwnd, &rect);
DrawText(hdc, TEXT("该喝水了!——DrawText( );"), -1, &rect, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
TextOut(hdc, 0, 0, words, wsprintf(words, TEXT("该喝水了!——TextOut();")));
EndPaint(hwnd, &ps);
return 0;
case WM_TIMER:
ShowWindow(hwnd, SW_SHOWNORMAL);
break;
case WM_DESTROY:
KillTimer(hwnd, 1);
PostQuitMessage(0);
break;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}
程序使用的函数:
SetTimer(hwnd, 1, 3000, NULL); —一个计时器函数
1——计时器编号
3000——时间,以毫秒为单位
KillTimer(hwnd, 1); ——移除计时器, 一般与SetTimer 成对使用
1——计时器编号
RECT结构 ——rect这个对象是用来存储成对出现的参数, 比如矩形的坐上角坐标、宽度和高度
left——指定矩形框左上角的 x 坐标
top——……………………y 坐标
right——指定矩形框右下角的 x 坐标
bottom——……………………y 坐标
GetClientRect(hwnd, lpRect); ——将窗口的客户区的坐标写入 RECT 的结构中
lpRect——指向 RECT 结构的指针中
DrawText(hac, lpString, nCount, lpRect, uFormat); ——输出字符函数
lpString——字符串指针
nCount——字符串长度, 如果为 -1 则自动计算 ‘\0‘ 之前的字符串长度
uFormat——设置字符输出在窗口的样式
DT_CENTER:指定文本水平居中显示。
DT_SINGLELINE:单行显示文本,回车和换行符都不断行。
DT_VCENTER:指定文本垂直居中显示。该标记只在单行文本输出时有效,所以它必须与DT_SINGLELINE结合使用
TextOut(hdc, x, y, lpString, nCount); ——输出字符函数
x——开始绘制文字的左上角距窗口左边的距离
y——……………………右上角…………
ShowWindow(hwnd, nCmdShow); ——窗口显示设置
nCmdShow——指定窗口如何显示
SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口
SW_HIDE:隐藏窗口并激活其他窗口
SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置
…………
…………
FlashWindow(hwnd, TRUE); ——窗口图表闪动函数
TRUE——TRUE指即使窗口处于激活状态也闪动窗口图表,
FALSE 指只有窗口处于未激活状态才闪动图表
标签:
原文地址:http://www.cnblogs.com/mystyle1433/p/5440538.html