鼠标c语言
‘壹’ c语言下怎么用鼠标啊
代码片段:
1
switch(message)
2
{
3
case
WM_PAINT:
//处理重绘消息
4
hdc
=
BeginPaint(
hwnd,
&ps
)
;
5
wsprintf(
szBuffer,
"屏幕坐标:(%i,
%i)",
pt.x,
pt.y
);
6
TextOut(
hdc,
10,
10,
szBuffer,
lstrlen(szBuffer)
)
;
7
ScreenToClient(
hwnd,
&pt
)
;
//将相对于屏幕的坐标转换为相对于窗口客户区的坐标
8
wsprintf(
szBuffer,
"客户区坐标:(%i,
%i)",
pt.x,
pt.y
);
9
TextOut(
hdc,
10,
30,
szBuffer,
lstrlen(szBuffer)
)
;
10
EndPaint(
hwnd,
&ps
)
;
11
return
0
;
12
13
case
WM_MOUSEMOVE:
//处理鼠标移动时发来的消息
14
GetCursorPos(&pt)
;
15
InvalidateRect(
hwnd,
NULL,
TRUE
)
;
16
return
0
;
‘贰’ C语言鼠标操作
我之前给别人写过一个打地鼠的小游戏,就是用鼠标操作的。发给你参考下。代码很简单。
主要函数我在下方说明了,但更多信息你必须自己网络看,一言两语说不完。
SetConsoleCursorPosition函数可以定位光标位置,也就是文字内容显示的起点。
ReadConsoleInput(HANDLE hConsoleInput,*INPUT_RECORD lpBuffer,DWORD nLength,
DWORD lpNumberOfEventsRead)函数可以获取鼠标的操作信息。
调用过上面函数后,lpBuffer由于是传址,所以其地址里的值就包含了鼠标信息。
lpBuffer.EventType == MOUSE_EVENT //判断是鼠标事件
lpBuffer.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//判断是鼠标左键点击
两个判断一起就是鼠标左键点击的判断,其他事件参数你可以自己网上找。
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#include<time.h>
#include<string.h>
#include<malloc.h>
#definegSizek30//区域大小宽度
#definegSizeg20//区域大小高度
#definegBegin3//活动区域起始行
intmain()
{
intt=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
chargameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLEhInput=GetStdHandle(STD_INPUT_HANDLE);//获取标准输入设备句柄
INPUT_RECORDinRec;
DWORDres;
COORDp0;
p0.X=0;
p0.Y=0;
srand(time(0));
s0=time(NULL);
strcpy(gameA[0],"GAME");
strcpy(gameA[1],"未命中次数:0,计分:000000");
for(i=gBegin-1;i<gSizeg;i++)
{
for(j=0;j<gSizek+1;j++)
{
if(i>gBegin-1&&i<gSizeg-1&&j>0&&j<gSizek-1)
gameA[i][j]='';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;i<gSizeg;i++)
printf("%s ",gameA[i]);
while(1)
{
if(t>=3)
{
if(row>0&&clo>0)
gameA[row][clo]='';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0=time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
if(row<3)
row=4;
if(clo<1)
clo=1;
gameA[row][clo]=2;
for(i=0;i<gSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf("%s ",gameA[i]);
}
}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAMEOVER!");
break;
}
s1=time(NULL);
t=s1-s0;
ReadConsoleInput(hInput,&inRec,1,&res);
if(inRec.EventType==MOUSE_EVENT&&inRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)//鼠标左键
{
if(inRec.Event.MouseEvent.dwMousePosition.X==clo&&inRec.Event.MouseEvent.dwMousePosition.Y==row)
{
if(fen==0)
fen=1;
if(fen>999999)
fen=999999;
else
fen=fen*2;
sprintf(fSave,"%06d",fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count++;
fen=0;
gameA[1][11]=count+'0';
}
t=4;
}
}
while(1);
return0;
}
‘叁’ c语言鼠标定时点击指定位置
c语言鼠标定时点击指定位置需要模拟鼠标在远程桌面中进行移动。定时模拟点击屏幕坐标位置工具,程序采用c语言编写,可以自定义设置时间,设置屏幕坐标,到时间鼠标会自动根据坐标的位置点击一次。
‘肆’ C语言怎么实现鼠标操作
VOID keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo ); 4个参数都是输入参数。 bVk:键名,例如: VK_NUMPAD7,VK_BACK, VK_TAB,VK_SHIFT,VK_F1,。。。 keybd_event(VK_MENU,0xb8,0 , 0); -- 按下Alt 键 keybd_event(VK_MENU,0xb8,KEYEVENTF_KEYUP,0); -- 放开 Alt 键 (复位,弹上来) === 下面程序模拟按 notepad 编辑器。等于C语言 system("notepad"); 弹出 记事本。
‘伍’ c语言:鼠标和键盘函数的相关问题
通过调用API
mouse_event,SetCursorPos实现鼠标的模拟
给你点简单的代码自己研究下
想自己动手是好事Private
Declare
Sub
mouse_event
Lib
"user32"
(ByVal
dwFlags
As
Long,
ByVal
dx
As
Long,
ByVal
dy
As
Long,
ByVal
cButtons
As
Long,
ByVal
dwExtraInfo
As
Long)
Private
Declare
Function
SetCursorPos
Lib
"user32"
(ByVal
x
As
Long,
ByVal
y
As
Long)
As
Long
Const
MOUSEEVENTF_LEFTDOWN
=
&H2
Const
MOUSEEVENTF_LEFTUP
=
&H4
Const
MOUSEEVENTF_MIDDLEDOWN
=
&H20
Const
MOUSEEVENTF_MIDDLEUP
=
&H40
Const
MOUSEEVENTF_MOVE
=
&H1
Const
MOUSEEVENTF_ABSOLUTE
=
&H8000
Const
MOUSEEVENTF_RIGHTDOWN
=
&H8
Const
MOUSEEVENTF_RIGHTUP
=
&H10
Private
Sub
Command1_Click()
SetCursorPos
Val(400),
Val(0)
mouse_event
MOUSEEVENTF_LEFTDOWN
Or
MOUSEEVENTF_LEFTUP,
0,
0,
0,
0
End
SubPrivate
Sub
Command2_Click()
mouse_event
MOUSEEVENTF_MOVE,
210,
200,
0,
0
SetCursorPos
Val(300),
Val(300)
mouse_event
MOUSEEVENTF_RIGHTDOWN
Or
MOUSEEVENTF_RIGHTUP,
0,
0,
0,
0
End
Sub
‘陆’ C语言怎样用鼠标控制播放一首歌
你是想问通过控制鼠标操作播放器播放歌(类似按键精灵那样重复用户操作)。还是直接播放音乐文件。
两种都需要window API支持。
一、直接播放文件,可用函数playSound,头文件windows.h和mmsystem.h。(注意不是支持所有文件格式)。
二、控制鼠标模拟操作:
1、鼠标点击操作可用SendInput函数或keybd_event函数。
2、鼠标移动可用SetCursorPos或mouse_event。
三、通过FundWindow函数获取播放软件的窗口句柄,再通过FindWindowEx遍历窗口下所有控件,直接对窗口控件发送消息。
‘柒’ C语言鼠标移动
SetCursorPos( x,y ); 移动鼠标到x,y位置
mouse_event( MOUSEEVENTF_LEFTDOWN, x,y,0,0 ); 左键按下
mouse_event( MOUSEEVENTF_RIGHTDOWN, x,y,0,0 ); 右键按下
如果要捕捉鼠标的移动,一般采用勾子程序,详情,请查阅鼠标勾子代码
‘捌’ c语言如何实现控制鼠标
可以,需要调用windowsAPI函数。
头文件windows.h。
简单思路:
通过GetStdHandle获取标准输入句柄。
再通过ReadConsokeInput将输入信息存储到结构体类型INPUT_RECODE变量中。
再通过判断,截取到鼠标电击的事件。
具体API函数、参数、功能还有很多。需要网上找资料可以学。
我这里就简单写一个,鼠标点击控制台任意位置,并在该位置打印字符串。
#include<stdio.h>
#include<windows.h>
intmain()
{
HANDLEhInput=GetStdHandle(STD_INPUT_HANDLE);//获取标准输入设备句柄
INPUT_RECORDinRec;
DWORDres;
COORDp0;
while(1)
{
ReadConsoleInput(hInput,&inRec,1,&res);
if(inRec.EventType==MOUSE_EVENT&&inRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)//鼠标左键
{
p0.X=inRec.Event.MouseEvent.dwMousePosition.X;
p0.Y=inRec.Event.MouseEvent.dwMousePosition.Y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("你在这里点击的左键
");
}
}
return0;
}
‘玖’ C语言怎样实现鼠标事件,纯C可不可以
我猜你说的纯C指的是标准C(Standard C)。如果是这样的话,我可以明确告诉你确实没有鼠标事件。
标准C库的所有头文件可以参照官方网站,里面有各头文件中包含函数功能比较详细的说明。
关于鼠标我要说一下,图形界面不是计算机运行的必需模块,操作系统甚至可以没有鼠标驱动。上过计算机操作系统课之后你应该知道,一个操作系统能够跑起来,只需要有各进程调度和资源分配,并不依赖图形界面。每个进程在设计的时候可以自由选择自己需要的函数库进行封装链接(或者运行时动态链接)。比方说你写个程序只需要计算1+1,那么要图形界面模块有啥用呢?
图形用户交互界面(GUI)其实也是特殊的函数库,如果操作系统支持(或者说操作系统中有安装相关函数库的话),则可以在程序中包含头文件进行调用。
如果是正经学计算机的,建议先放下图形交互,放下Windows(当然我没说它不好),尝试接触下OSX以及Linux,你会有比较大的收获。
‘拾’ C语言怎样改变鼠标样式
代码
#include <graphics.h>
#include <conio.h>
#include <math.h>
void main()
{
int i;
// 绘图环境初始化
initgraph(640, 480);
setbkcolor(BLACK);
cleardevice();
HCURSOR hcur = LoadCursor(NULL, IDC_CROSS); // 加载系统预置的鼠标样式
HWND hwnd = GetHWnd(); // 获取绘图窗口句柄
SetClassLong(hwnd, GCL_HCURSOR, (long)hcur); // 设置窗口类的鼠标样式,其中第二个参数是鼠标样式
getch();
closegraph();
}