当前位置:首页 » 编程语言 » c语言鼠标图案
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言鼠标图案

发布时间: 2023-05-21 03:31:52

㈠ 关于c语言鼠标驱动程序(高手请仔细看)

设置鼠标的光标形状
设置鼠标光标需要三个方面信息:
鼠标的外边界:8*8点阵,16个整数
鼠标的内部形状:8*8点阵,16个整数
以及鼠标的热点的相对坐标:int x,y
其中外边界和内边界连续存放,为长度为32的整型数组 int marks[32] SetCurs(unsigned masks[32],x,y)
{ union REGS regs; struct SREGS sregs;
regs.x.ax=9;
regs.x.bx=x; regs.x.cx=y;/* hot spot*/
regs.x.dx=(unsigned)masks;
segread(&sregs); int86(0x33,(r)gs,(r)gs);
}
一些不同形状的光标数据:
//mouse
{0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, //Cursor mask
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x13c0,
0x3ff0, 0x7ff8, 0xfff8, 0xfff8, 0x0824, 0x0822, 0x1ce2, 0x0000},
//empty hand
{0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0x0c00, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,
0x7249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x4002, 0x3ffc},
//full arrow
{0x3fff, 0x1fff, 0x0fff, 0x07ff, 0x03ff, 0x01ff, 0x00ff, 0x007f,
0x003f, 0x00ff, 0x01ff, 0x10ff, 0x30ff, 0xf87f, 0xf87f, 0xfc3f,
0x0000, 0x4000, 0x6000, 0x7000, 0x7800, 0x7c00, 0x7e00, 0x7f00,
0x7f80, 0x7e00, 0x7c00, 0x4600, 0x0600, 0x0300, 0x0300, 0x0180},
//full hand
{0xf3ff, 0xe1ff, 0xe1ff, 0xe1ff, 0xe001, 0xe000, 0xe000, 0xe000,
0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8001, 0xc003,
0x0c00, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,
0x7249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x4002, 0x3ffc}
};
Point hotspot[]={{0,11},{4,0},{0,0},{4,0}};/*热点*/

㈡ C语言中怎样做鼠标编程

#include
void
hidecursor()
{
console_cursor_info
cursor_info
=
{1,
0};
setconsolecursorinfo(getstdhandle(std_output_handle),
&cursor_info);
}
函数和结构体都在windows.h中定义,函数用法简单就不说了。
console_cursor_info结构体定义如下:
typedef
struct
{
dword
dwsize;
bool
bvisible;
//为0时光标不可见
}console_cursor_info,
*pconsole_cursor_info;
vc,mingw中均没问题。
不明白直接hi。

㈢ 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;
}