
正文
vcc语言获取鼠标函数 c语言操作鼠标函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
VC下,C语言如何获取鼠标单击位置?高手请进。
VC下:先映射ON_WM_LBUTTONDOWN消息,会产生函数void OnLButtonDown(UINT nFlags, CPoint point) ,point即是点击位置
相关问答
Q1: C++里用什么函数获取鼠标位置
OnMouseMove的后一个参数就是鼠标的当前位置
void CTest1View::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CView::OnMouseMove(nFlags, point);
CPoint MousePosition = point;
}
Q2: C程序中,怎样获得鼠标的坐标??
想要获取鼠标坐标并不容易vcc语言获取鼠标函数,还是一样需要调用两个API函数GetCursorPos() 获取鼠标指针位置(屏幕坐标)然后采用ScreenToClient() 将鼠标指针位置转换为窗口坐标输出即可。上例子。
// 程序名称vcc语言获取鼠标函数:通过 API 获取鼠标状态
//
#include graphics.h
#include stdio.h
void main()
{
initgraph(640, 480); // 初始化绘图窗口
HWND hwnd = GetHWnd(); // 获取绘图窗口句柄
POINT point;
TCHAR s[10];
while(true)
{
GetCursorPos(point); // 获取鼠标指针位置(屏幕坐标)
ScreenToClient(hwnd, point); // 将鼠标指针位置转换为窗口坐标
// 获取鼠标按键状态可以用 GetAsyncKeyState 函数vcc语言获取鼠标函数,这里不再详述。
// 输出鼠标坐标
sprintf(s, _T("%05d"), point.x);
outtextxy(0, 0, s);
sprintf(s, _T("%05d"), point.y);
outtextxy(0, 20, s);
// 适当延时
Sleep(10);
}
}
同样运行环境需要安装EasyX。
Q3: 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(_bx1);
}
-----------------------------------------------------
鼠标右键的应该也会了吧。不过要return(_bx2);
-----------------------------------------------------
void
mousegetxy(void)//得到当前位置
{
_ax
=
0x33;
geninterrupt(0x33);
mousex
=
_cx;
mousey
=
_dx;
}
---------------------------------------------------------------
最好要复制粘贴,打字打得手疼。
Q4: vc++中怎么调用释放鼠标函数
以下通过SetCapture函数实现获取。
SetCapture
函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。
LRESULT
CALLBACK
TestProc(HWND
hwnd,
UINT
msg,
WPARAM
wParam,
LPARAM
lParam)
{
switch
(msg)
{
case
WM_LBUTTONDOWN:
//左键按下
{
SetCapture(hwnd);
}
break;
case
WM_MOUSEMOVE:
//鼠标按下移动
{
if(GetCapture()
==
hwnd)
{
//鼠标按下并移动...
}
}
break;
case
WM_LBUTTONUP:
//左键弹起
{
if(GetCapture()
==
hwnd)
ReleaseCapture();
//当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。
}
break;
return
0;
}
}
Q5: 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
#define gSizek 30//区域大小宽度
#define gSizeg 20//区域大小高度
#define gBegin 3//活动区域起始行
int main()
{
int t=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
char gameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle("打地鼠");
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
INPUT_RECORD inRec;
DWORD res;
COORD p0;
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;igSizeg;i++)
{
for(j=0;jgSizek+1;j++)
{
if(igBegin-1 igSizeg-1 j0 jgSizek-1)
gameA[i][j]=' ';
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;igSizeg;i++)
printf("%s\n",gameA[i]);
while (1)
{
if(t=3)
{
if(row0 clo0)
gameA[row][clo]=' ';
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0= time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
if(row3)
row=4;
if(clo1)
clo=1;
gameA[row][clo]=2;
for(i=0;igSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf("%s\n",gameA[i]);
}
}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf("GAME OVER!");
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(fen999999)
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);
return 0;
}
关于vcc语言获取鼠标函数和c语言操作鼠标函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






