VC 获取鼠标 点击时的屏幕坐标
来源:互联网 发布:域名变更备案ip 编辑:程序博客网 时间:2024/05/01 23:12
#include "stdafx.h"
#include <stdio.h>
HWND MainHwnd;
HWND TrackHwnd;
UINT g_nXCoor;
UINT g_nYCoor;
//
LRESULT CALLBACK WndProcMain (HWND hWnd, UINT message, WPARAM wParam ,LPARAM lParam);
LRESULT CALLBACK WndProcTrack (HWND hWnd, UINT message, WPARAM wParam ,LPARAM lParam);
int _stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrev,
char * lpCmdLine, int nShowCmd )
{
WNDCLASSEX WndClassEx; //设计类
WndClassEx.cbSize = sizeof( WNDCLASSEX );
WndClassEx.style = NULL;
WndClassEx.lpfnWndProc = WndProcMain;
WndClassEx.cbClsExtra = 0;
WndClassEx.cbWndExtra = 0;
WndClassEx.hInstance = hInstance;
WndClassEx.hIcon = LoadIcon( NULL, IDI_APPLICATION );
WndClassEx.hCursor = LoadCursor( NULL, IDC_ARROW );
WndClassEx.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
WndClassEx.lpszMenuName = NULL;
WndClassEx.lpszClassName = "MyWndClassMain";
WndClassEx.hIconSm = LoadIcon( NULL, IDI_APPLICATION );
::RegisterClassEx( &WndClassEx ); //注册类
MainHwnd = CreateWindow ( "MyWndClassMain", "My First Windows", WS_OVERLAPPEDWINDOW,
100, 100, 600, 600, NULL, NULL, hInstance, NULL); //创建窗口
WndClassEx.lpfnWndProc = WndProcTrack;
WndClassEx.lpszClassName = "MyWndClassTrack";
::RegisterClassEx( &WndClassEx );
TrackHwnd = CreateWindow ("MyWndClassTrack", "TrackWindows", WS_OVERLAPPEDWINDOW | WS_CHILD,
0, 0, 200, 50, MainHwnd, NULL, hInstance, NULL); //创建窗口
ShowWindow (MainHwnd, nShowCmd ); //显示窗口
ShowWindow (TrackHwnd, nShowCmd ); //显示窗口
MSG msg; //消息
while( GetMessage( &msg,NULL,NULL,NULL ) )
{
::DispatchMessage( &msg ); //将消息分发到窗口函数
}
return 0;
}
LRESULT CALLBACK WndProcMain (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message )
{
case WM_MOUSEMOVE: //鼠标移动
g_nXCoor = LOWORD( lParam ); // 鼠标横坐标
g_nYCoor = HIWORD( lParam ); // 鼠标纵坐标
InvalidateRect( hWnd, NULL,TRUE ); //增加重绘区域
MoveWindow (TrackHwnd, g_nXCoor + 15, g_nYCoor + 15, 200, 50, TRUE ); //改变窗口的大小和位置
break;
case WM_PAINT: //绘制
{
PAINTSTRUCT PS; //定义PAINTSTRUCT结构来记录一些绘制信息
HDC hDC; //定义HDC类
RECT rectClient; //定义RECT类
hDC = BeginPaint (hWnd, &PS);
GetClientRect ( hWnd, &rectClient);
MoveToEx (hDC, g_nXCoor, rectClient.top, NULL );
LineTo (hDC, g_nXCoor, rectClient.bottom);
MoveToEx (hDC, rectClient.left, g_nYCoor, NULL );
LineTo (hDC, rectClient.right, g_nYCoor);
EndPaint (hWnd, &PS);
}
break;
case WM_DESTROY:
::PostQuitMessage ( 0 ); //销毁窗口
break;
default:
return ::DefWindowProc(hWnd, message, wParam, lParam ); //默认的消息处理的回调函数
}
return TRUE;
}
LRESULT CALLBACK WndProcTrack (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message )
{
case WM_PAINT: //显示坐标
{
PAINTSTRUCT PS; //定义PAINTSTRUCT结构来记录一些绘制信息
HDC hDC; //定义HDC类
RECT rectClient; //定义RECT类
CHAR strMousePosition[100];
hDC = BeginPaint (hWnd, &PS);
GetClientRect (hWnd, &rectClient);
sprintf (strMousePosition, "Mouse Pt: x= %4d y = %4d", g_nXCoor, g_nYCoor); //格式化输出到字符串
TextOut (hDC, 0, 0, strMousePosition, strlen ( strMousePosition)); //输出坐标
EndPaint (hWnd, &PS);
}
break;
case WM_DESTROY:
::PostQuitMessage( 0 ); //销毁窗口
break;
default:
return ::DefWindowProc(hWnd, message, wParam, lParam ); //默认的消息处理的回调函数
}
return TRUE;
}
http://hi.baidu.com/vipver/blog/item/9ea3770965c3fb2d6a60fb02.html
- VC 获取鼠标 点击时的屏幕坐标
- 点击屏幕获取坐标
- 获取鼠标点击的坐标处理
- Android获取点击屏幕的位置坐标
- js获取鼠标点击时坐标
- 鼠标屏幕坐标获取器
- js 获取鼠标点击坐标
- Javascript获取鼠标点击坐标
- Java 获取鼠标点击坐标
- js获取鼠标点击坐标
- 获取鼠标点击处的控件并获取其坐标
- VC 获取鼠标点坐标
- c#中获取屏幕上鼠标的坐标
- 获取网页上的屏幕信息和鼠标坐标
- java实现获取鼠标在屏幕上的坐标
- CListBox 中获取点击鼠标坐标的方法
- 获取鼠标点击坐标等__颜色选择器的制作
- JS获取页面鼠标点击位置的坐标
- vc中使用SendMessage正确发送自定义消息的方法
- Invoke-Command in PowerShell
- Response.Redirect 打开新窗口的两种方法
- 陶陶书评 之 黑客与画家 -----------------世界需要黑客
- 链表的建立
- VC 获取鼠标 点击时的屏幕坐标
- javascript重新加载当前带参数的页面
- HTTP 状态代码
- 使用MYSQL作为HIVE的METASTORE
- ie插件制作
- 图灵LAMP类图书精彩荟萃
- Telnet Sequence Diagram
- GNU/Linux 编程中的定时器
- 用gdb调试程序笔记: 以段错误(Segmental fault)为例