#include <windows.h> #include<stdlib.h> #include <string.h> BOOL InitWindowsClass(HINSTANCE hInstance); //初始化窗口类声明 BOOL InitWindows(HINSTANCE hInstance,int nCmdShow); //初始化窗口声明 HFONT CreateFont(HDC hDC,int nCharHeight,BOOL bItalic); int i=0; int x[11],y[11]; int color[11]; POINT pt; int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. MSG Message; if(!InitWindowsClass(hInstance)) //初始化窗口类 return FALSE; if(!InitWindows(hInstance,nCmdShow)) //初始化窗口 return FALSE; while (GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); //消息循环 DispatchMessage(&Message); } return Message.wParam; } LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) { HDC hDC; //设备环境句柄 HFONT hF; //字体句柄 PAINTSTRUCT ps; //包含绘图信息的结构体变量 TEXTMETRIC tm; //包含字体信息的结构体变量 char str[]=" I Love You"; //输出的字符串 switch(iMessage) { case WM_CREATE: SetTimer(hWnd,1,40,NULL); GetCursorPos(&pt); for (i=0;i<11;i++) { x[i]=pt.x; y[i]=pt.y; color[i]=25*(i-1); } break; case WM_PAINT: //处理绘图信息 hDC=BeginPaint(hWnd,&ps); //获得设备环境指针 hF=CreateFont(hDC,40,0); //创建字体 SelectObject(hDC,hF); //选入字体 GetTextMetrics(hDC,&tm); //得到包含字体信息的结构体 for (i=10;i>1;i--) { x[i]=x[i-1]+50; y[i]=y[i-1]; } GetCursorPos(&pt); x[1]=pt.x; y[1]=pt.y; for (i=1;i<11;i++) { SetTextColor(hDC,RGB(255-color[i],color[i],255)); //设置字体颜色 TextOut(hDC,x[i],y[i],&str[i],1); //输出从第1个到第nChar个字符 } color[1]=color[10]; for (i=10;i>1;i--) color[i]=color[i-1]; DeleteObject(hF); //删除字体句柄 EndPaint(hWnd,&ps); //删除设备用户指针 return 0; case WM_TIMER: //处理由计时器发出的消息 InvalidateRect(hWnd,NULL,1); //刷新用户区 break; case WM_DESTROY: PostQuitMessage(0); KillTimer(hWnd,1); //删除计时器 return 0; default: return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } return 0; } BOOL InitWindows(HINSTANCE hInstance,int nCmdShow) { HWND hWnd; hWnd=CreateWindow("键盘-鼠标综合应用示例", //窗口类名称 "Mouse Text Application", //标题栏名称 WS_OVERLAPPEDWINDOW, //窗口样式 0, //窗口左上角坐标 0, 800, //窗口高度和宽度 600, NULL, //无父窗口 NULL, //无菜单 hInstance, //当前应用实例句柄 NULL ); if(!hWnd) return FALSE; //创建失败 ShowWindow(hWnd,nCmdShow); //显示窗口 UpdateWindow(hWnd); //刷新用户区 return TRUE; } BOOL InitWindowsClass(HINSTANCE hInstance) { WNDCLASS WndClass; WndClass.cbClsExtra=0; //无窗口类扩展 WndClass.cbWndExtra=0; //无窗口实例扩展 WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_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; //默认窗口风格 return RegisterClass(&WndClass); //返回窗口注册值 } HFONT CreateFont(HDC hDC,int nCharHeight,BOOL bItalic) { HFONT hFont; hFont=CreateFont( //定义字体句柄 nCharHeight, //字体高度 0, //系统根据高宽比选取字体最佳宽度值 0, //文本倾斜度,0表示水平 0, //字体倾斜度为0 400, //字体粗度,400为正常 bItalic, //是斜体字 0, //无下划线 0, //无删除线 ANSI_CHARSET, //ANSI_CHARSET字符集 OUT_DEFAULT_PRECIS, //删除精度为默认值 CLIP_DEFAULT_PRECIS, //裁剪精度为默认值 DEFAULT_QUALITY, //输出质量为默认值 DEFAULT_PITCH|FF_DONTCARE, //字间距 "Arial"); if(hFont==NULL) return NULL; else return hFont; }
|
|