⑴ 用c语言怎么判断鼠标在窗口的位置
用API函哪姿陆李顷数GetCursorPos()可以得到鼠册茄标现在的位置:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <windows.h>
int main(void)
{
POINT pt;
GetCursorPos(&pt);
printf("%ld %ld\n",pt.x,pt.y);
return 0;
}
//---------------------------------------------------------------------------
⑵ 在linux下编c语言的程序,我想判断鼠标的按键状态,该怎么写程序啊HELP啊!
仔细看下这个头文件input.h 和结构体 input_event 的描述吧,对你应该有帮助;
/*
* The event structure itself
*/
struct input_event {
struct timeval time;
__u16 type;
__u16 code;
__s32 value;
};
里面有关于type、code、态游value值的介绍;
理解这个察闭掘之后,你就明白什么时候代表按下鼠标左键,什么时候松开鼠标左键,什么时候按下鼠标败核右键、什么时候松开鼠标右键;
/*
* Event types
*/
......
#define EV_KEY 0x01
......
/*
* Keys and buttons , code values
*/
....
#define BTN_MOUSE 0x110
#define BTN_LEFT 0x110
#define BTN_RIGHT 0x111
#define BTN_MIDDLE 0x112
#define BTN_SIDE 0x113
#define BTN_EXTRA 0x114
#define BTN_FORWARD 0x115
#define BTN_BACK 0x116
#define BTN_TASK 0x117
.....
⑶ linux下C语言怎么读鼠标左键
linux 下操作鼠标的嫌锋橡基兆函数都在"/dev/input/mice“ 下。
有对应的函数可以操作鼠标芹旁坐标,功能实现。
⑷ 请问C语言有哪些手段可以记录鼠标按键的时长,
处理WM_LBUTTONDOWN和 WM_LBUTTONUP消息
分别用GetTickCount()获取时间, 两亏散差者相减就是按下的掘此时长销皮 (精确到毫秒)
⑸ VC下,C语言如何获取鼠标单击位置高手请进。
VC下:先亮锋余映射ON_WM_LBUTTONDOWN消息,会产生函数void OnLButtonDown(UINT nFlags, CPoint point) ,point即是点基尘击敬滚位置
⑹ c语言怎么判断是否点击了鼠标,简单一点的方法,dev c++可以用的,谢谢各位大神。
#include<cstdio>
#include<windows.h>
#define枣郑KEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)行烂?1:0)
intmain()
{
while(1)
{
printf("鼠标左键是否按下:");
if(KEY_DOWN(VK_LBUTTON))printf("是");
elseprintf("否");
printf(" ");
printf("鼠标右键是否按下:");
if(KEY_DOWN(VK_RBUTTON))printf("是");
else档岩漏printf("否");
printf(" ");
Sleep(2000);
}
return0;
}
⑺ 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语言在控制台判定鼠标左键是否点击要用什么函数
// temp1.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
SetConsoleTitle("1111111111");
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获山顷野取标准输入设备句柄
INPUT_RECORD inRec;
DWORD res;
while (1)
{
ReadConsoleInput(hInput, &inRec, 1, &res);
if (inRec.EventType == MOUSE_EVENT && inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //逗喊鼠标左乎梁键
{
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),inRec.Event.MouseEvent.dwMousePosition);
printf("Hello World!");
}
Sleep(100);
}
return 0;
}
⑼ c语言如何获取鼠标键盘信息
我估计你分数给的在高也没人回答。来个这样的代码太麻烦了。而且网络金币用处也不大。
不过,我可以写几个鼠标函数给你参考一下。
首先了解一下鼠标的中断。
_ax=0x01
表示显示光标
_ax=0x02
停止显示光标
_ax=0x03
读取光标位置与案件
_ax=0x04
设置光标位置
所以啊。根据这四个中断,有以下几个函数
----------------------------------------------------
void
mouseon(void)//鼠标光标显示
{
_ax
=
0x01;
geninterrupt(0x33);
}
----------------------------------------------------
void
mouseoff(void)//鼠标光标隐藏
{
_ax
=
0x02;
geninterrupt(0x33);
}
---------------------------------------------------
void
mousesetxy(int
x,int
y)//设置当前位置
{
_cx
=
x,
_cd
=
y;
_ax
=
0x04;
geninterrupt(0x33);
}
---------------------------------------------------
int
leftpress(void)//鼠标左键按下
{
_ax
=
0x33;
geninterrupt(0x33);
return(_bx&1);
}
-----------------------------------------------------
鼠标右键的应该也会了吧。不过要return(_bx&2);
-----------------------------------------------------
void
mousegetxy(void)//得到当前位置
{
_ax
=
0x33;
geninterrupt(0x33);
mousex
=
_cx;
mousey
=
_dx;
}
---------------------------------------------------------------
最好要复制粘贴,打字打得手疼。
⑽ C语言如何检测点击的按钮
通常很多情况下,会有这样的事情,就是:
我们在运行某些程序的时候,发现按钮置灰了,比如购买版权或者输入序列号才能够获得访问权限。某个按钮才允许点击。
其实所有的这些东西都是 别的人或者公司利用一些编程语言调用windows的函数,实现的。所以如果我们也能调用windows的函数,那么我们就能够执行一些按钮或者某些东西背后的函数。
自己的mfc还暂时 用不了,不过 可以 试试这个。
调出这个界面,看到有一个置灰的设置按钮。我们可以试着调用这个后面的函数。
/*如何调出来?【在win7环境下】
打开控制面板
点击鼠标。*/
然后利用vs的工具中的spy++ x64。
进入查找窗口。
拖住这个到刚刚鼠标的那个置灰的按钮上面。就可以得到一个句柄。
句柄【在我理解,就是一个话把子,怎么解释,核隐敬就是,别人说一件事儿,你得顺着往下说才能把话接下来,然后完成你想说的东西。在程序里面,执行到这里,有这样一个句柄,允许我们说话了,我们就从这一点开始,顺着往携蔽下说,往往就能得到我们想要的结果】
所以得到了句柄之后。我们可以新建一个工程。
#include <windows.h>
int main(){
SendMessage(0x001607E6,WM_LBUTTONDOWN,0,0);
SendMessage(0x001607E6,WM_LBUTTONUP,0,0);
return 0;
}
//在HWND的第一个参数里面输入刚刚的句柄。
//猜测 第二个参数 是 WindowManager_LeftButtonDown,就是窗口管理改慎器左键按钮点下。
//然后左键按钮弹起。
就强制的往刚刚不能执行的函数里面发送了一个信息。前面的引文介绍说,这就是调用了windows底层的一些函数,如果按钮可以点击,则鼠标点击,按钮按下,当需要注册的时候,或者需要序列号的时候我们并没有,就不能点击。但是当我们给他发送一条消息以后,是不是问题就解决了。