相门败类完本:鼠标-文本综合应用样例

来源:百度文库 编辑:偶看新闻 时间:2024/05/08 10:02:45
#include #include#include
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;}