编译器:DEV C++15.5
代码描述:实时监测鼠标位置,假如鼠标右键,跳出循环
问题描述:跳出循环后控制台立即粘贴粘贴板内容,在存在输入函数的情况下,输入函数会读取粘贴的内容
#include<stdio.h>
#include<windows.h>
#include<stdbool.h>
#define lengths 100
#define wides 25
typedef struct p{
int x;
int y;
bool argu;
}POS;
void Mouse(POS *pos);
int main(void)
{
SetConsoleTitle("媒体库管理系统");
POS *pos=(POS*)malloc(sizeof(POS));
char ch[1000];
while(true)
{
Mouse(pos);
if(pos->argu)
break;
}
COORD po={2,2};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),po);
printf("输入:");
gets(ch);
puts(ch);
}
void Mouse(POS *pos)
{
pos->argu =false;
POINT *mouse=(POINT*)malloc(sizeof(POINT)+64);
GetCursorPos(mouse);
LPRECT console=(LPRECT)malloc(sizeof(LPRECT)+64);
HWND hwnd=FindWindow(NULL,"媒体库管理系统");
GetWindowRect(hwnd,console);
/*测试位置*/
int x=mouse->x -console->left;
int y=mouse->y -console->top;
COORD p={0,wides+2};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p);
printf("鼠标相对控制台:%d %d \n",x,y);
printf("鼠标位置在控制台以实用数值(一个字符占八个单位长度)表示(近似):%d %d ",x/8,y/8);//更精确的在指定位置输出
/*结束*/
if(GetAsyncKeyState(VK_RBUTTON))
{
pos->x=mouse->x -console->left;
pos->y=mouse->y -console->top;
pos->argu =true;
}
}
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。
原因:鼠标右击系统默认为粘贴,在有输入函数的情况下,作为输入,那么如何用C语言关闭这个默认功能呢?
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!