鼠标的应用示例

  1 #include <Windows.h>
  2 #include <tchar.h>
  3 BOOLEAN InitWindowClass(HINSTANCE hInstance, int nCmdShow);
  4 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  5 HFONT CreateFont(HDC hDC, int nCharHeight, BOOL bItalic);
  6 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
  7 {
  8     MSG msg;
  9     if (!InitWindowClass(hInstance, nCmdShow))
 10     {
 11         MessageBox(NULL, L"创建窗口失败!", _T("创建窗口"), NULL);
 12         return 1;
 13     }
 14     while (GetMessage(&msg, NULL, 0, 0))
 15     {
 16         TranslateMessage(&msg);
 17         DispatchMessage(&msg);
 18     }
 19     return(int)msg.wParam;
 20 }
 21 LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 22 {
 23     HDC hDC;
 24     HFONT hF;
 25     PAINTSTRUCT ps;
 26     TEXTMETRIC tm;
 27     TCHAR str[] = L" Hello World ";
 28     int i = 0;
 29     static int x[13], y[13];
 30     static int color[13];
 31     POINT pt;
 32     switch (message)
 33     {
 34     case WM_CREATE:
 35         SetTimer(hWnd, 1111, 200, NULL);
 36         GetCursorPos(&pt);
 37         ScreenToClient(hWnd, &pt);
 38         for (i = 0; i < 13; i++)
 39         {
 40             x[i] = pt.x + (i - 1) * 40;
 41             y[i] = pt.y;
 42             color[i] = 25 * (i - 1);
 43         }
 44         break;
 45     case WM_PAINT:
 46         hDC = BeginPaint(hWnd, &ps);
 47         hF = CreateFont(hDC, 40, 0);
 48         SelectObject(hDC, hF);
 49         for (i = 12; i > 1; i--)
 50         {
 51             x[i] = x[i - 1] + 40;
 52             y[i] = y[i - 1];
 53         }
 54         GetCursorPos(&pt);
 55         ScreenToClient(hWnd, &pt);
 56         x[1] = pt.x;
 57         y[1] = pt.y;
 58         for (i = 1; i < 13; i++)
 59         {
 60             SetTextColor(hDC, RGB(255 - color[i], color[i], 255));
 61             TextOut(hDC, x[i], y[i], &str[i], 1);
 62         }
 63         color[1] = color[12];
 64         for (i = 12; i > 1; i--)
 65             color[i] = color[i - 1];
 66         DeleteObject(hF);
 67         EndPaint(hWnd, &ps);
 68         break;
 69     case WM_TIMER:
 70         if (wParam == 1111)
 71             InvalidateRect(hWnd, NULL, 1);
 72         break;
 73     case WM_DESTROY:
 74         PostQuitMessage(0);
 75         break;
 76     default:
 77         return DefWindowProc(hWnd, message, wParam, lParam);
 78         break;
 79     }
 80     return 0;
 81 }
 82 BOOLEAN InitWindowClass(HINSTANCE hInstance, int nCmdShow)
 83 {
 84     WNDCLASSEX wcex;
 85     HWND hWnd;
 86     TCHAR szWindowClass[] = L"窗口示例";
 87     TCHAR szTitle[] = L"鼠标的应用示例";
 88     wcex.cbSize = sizeof(WNDCLASSEX);
 89     wcex.style = 0;
 90     wcex.lpfnWndProc = WndProc;
 91     wcex.cbClsExtra = 0;
 92     wcex.cbWndExtra = 0;
 93     wcex.hInstance = hInstance;
 94     wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
 95     wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
 96     wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
 97     wcex.lpszMenuName = NULL;
 98     wcex.lpszClassName = szWindowClass;
 99     wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
100     if (!RegisterClassEx(&wcex))
101         return FALSE;
102     hWnd = CreateWindow(
103         szWindowClass,
104         szTitle,
105         WS_OVERLAPPEDWINDOW,
106         CW_USEDEFAULT, CW_USEDEFAULT,
107         CW_USEDEFAULT, CW_USEDEFAULT,
108         NULL,
109         NULL,
110         hInstance,
111         NULL
112         );
113     if (!hWnd)
114         return FALSE;
115     ShowWindow(hWnd, nCmdShow);
116     UpdateWindow(hWnd);
117     return TRUE;
118 }
119 HFONT CreateFont(HDC hDC, int nCharHeight, BOOL bItalic)
120 {
121     HFONT hFont;
122     hFont = CreateFont(
123         nCharHeight,
124         0,
125         0,
126         0,
127         400,
128         bItalic,
129         0,
130         0,
131         ANSI_CHARSET,
132         OUT_DEFAULT_PRECIS,
133         CLIP_DEFAULT_PRECIS,
134         DEFAULT_QUALITY,
135         DEFAULT_PITCH | FF_DONTCARE,
136         L"Arial"
137         );
138     if (hFont == NULL)
139         return NULL;
140     else
141         return hFont;
142 }

截图看不出效果^-^

时间: 2024-08-28 05:46:20

鼠标的应用示例的相关文章

Qt on Android: Qt Quick事件处理之鼠标、键盘、定时器

在<Qt on Android: Qt Quick 事件处理之信号与槽>中介绍了 QML 中如何使用内建类型的信号以及如何自定义信号,这次我们来看看如何处理鼠标.键盘.定时器等事件.这些时间在处理时,通常是通过信号来完成的. 广而告之:我正在参加 CSDN 博文大赛,请给我的参赛文章<Qt on Android: Qt Quick 事件处理之信号与槽>投票,谢谢. 鼠标事件处理 桌面开发的话,难免要处理鼠标事件-- 变色矩形示例 看一个简单的处理鼠标事件的例子,先看代码(handl

JavaScript示例五(右键菜单)

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上下文/鼠标右键 菜单示例</title> </head> <body> <div id="myDiv">右键点击文字区域获取上下文菜单</div> <ul id="myMe

cursor -- 定义鼠标样式

cursor -- 定义鼠标样式 取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | progress ] ] | inherit [<uri> ,]*: 根据用户定义的资源显示 a

python15-day17

python15-day17 目录 python15-day17. 1 1. HTML+CSS内容补充... 2 1.1 CSS布局... 2 1.2 撑起外边框... 3 1.3 响应式布局... 4 1.4 绑定事件的操作... 6 1.4.1 第一种事件操作方法... 6 1.4.2 第二种实践操作方法(推荐)... 7 1.5 获取焦点... 7 1.6 this的用法... 8 1.6.1 第一种用法... 8 1.6.2 第二种用法... 9 1.6.3 附innertext和inn

vc++HOOK详细讲解

消息钩子函数入门 Windows 系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的.而钩子是 Windows 系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能.钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理.这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘.鼠标的输入,屏幕取词,日志监视等等.可见,利用钩子可以实现许多特殊而有用的功能.因此,对

征服 Ajax 应用程序的安全威胁

Ajax 构建于动态 HTML(DHTML)技术之上,其中包括如下这些最常见的技术: JavaScript :JavaScript 是一种脚本语言,在客户端 Web 应用程序中经常使用. 文档对象模型(Document Object Model,DOM) :DOM 是一种用于表示 HTML 或 XML 文档的标准对象模型.如今,大多数浏览器都支持 DOM 并允许 JavaScript 代码动态地读取和修改 HTML 内容. 层叠样式表(Cascading Style Sheets,CSS) :C

正则表达式3——

( http://www.jb51.net/article/17943.htm ) Java 正则表达式详解 Java 正则表达式学习总结和一些小例子 Java正则多字符串匹配替换 java抓取网页数据获取网页中所有的链接实例分享 java 抓取网页内容实现代码 java抓取12306信息实现火车余票查询示例 java抓取鼠标事件和鼠标滚轮事件示例 零基础写Java知乎爬虫之抓取知乎答案 零基础写Java知乎爬虫之将抓取的内容存储到本地 java使用正则抓取网页邮箱 1.简介: java.uti

ajax copy

Ajax 构建于动态 HTML(DHTML)技术之上,其中包括如下这些最常见的技术: JavaScript :JavaScript 是一种脚本语言,在客户端 Web 应用程序中经常使用. 文档对象模型(Document Object Model,DOM) :DOM 是一种用于表示 HTML 或 XML 文档的标准对象模型.如今,大多数浏览器都支持 DOM 并允许 JavaScript 代码动态地读取和修改 HTML 内容. 层叠样式表(Cascading Style Sheets,CSS) :C

《每周一点canvas动画》——速度与加速度(2)

在上一节中我们介绍了速度的基本概念,包括沿坐标轴的速度,和更普适的任意方向的速度,在文章的最后我们做了一个鼠标跟随的示例,以及通过改变物体的rotation属性做了一个关于速度的扩展.通过上一节的学习你会发现我们的物体可以沿着任意方向运动,但是这还远远不够,因为我们的物体都是在做匀速运动.既然有匀速运动,当然就有变速运动喽!这一节我们介绍本章的另一个重要内容加速度.本节将分为下面几个部分: 加速度基本概念 沿坐标轴的加速度 加速度的合成与分解 重力加速度 太空船(运用实例) 本章总结 1.加速度