请问控制台下怎么捕捉鼠标弹起

kmsch 2014-12-22 10:04:09
INPUT_RECORD irInBuf;
DWORD cNumRead;
ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),&irInBuf,1,&cNumRead);

if(irInBuf.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED)
{
//......
}

这条语句鼠标按下就会执行

请问要怎么写才能让鼠标弹起时才执行呢?
...全文
170 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fly_dragon_fly 2014-12-23
  • 打赏
  • 举报
回复
引用 3 楼 fly_dragon_fly 的回复:
windows 控制台程序在鼠标弹出没有任何标志出现,可以直接从hwnd中得到嘛 GetConsoleWindow, 得到后换掉wndproc就可以了
SetWindowLong(hwnd,GWL_WNDPROC,(WNDPROC)newproc);
linxin3333520 2014-12-23
  • 打赏
  • 举报
回复
引用 3 楼 fly_dragon_fly 的回复:
windows 控制台程序在鼠标弹出没有任何标志出现,可以直接从hwnd中得到嘛 GetConsoleWindow, 得到后换掉wndproc就可以了
这个wndproc怎么替换啊,一直不懂这个方法
fly_dragon_fly 2014-12-23
  • 打赏
  • 举报
回复
windows 控制台程序在鼠标弹出没有任何标志出现,可以直接从hwnd中得到嘛 GetConsoleWindow, 得到后换掉wndproc就可以了
kmsch 2014-12-23
  • 打赏
  • 举报
回复
引用 1 楼 linxin3333520 的回复:
鼠标钩子不能用吗?应该可以吧
求指教?
linxin3333520 2014-12-23
  • 打赏
  • 举报
回复
鼠标钩子不能用吗?应该可以吧
linxin3333520 2014-12-23
  • 打赏
  • 举报
回复
引用 5 楼 fly_dragon_fly 的回复:
[quote=引用 3 楼 fly_dragon_fly 的回复:] windows 控制台程序在鼠标弹出没有任何标志出现,可以直接从hwnd中得到嘛 GetConsoleWindow, 得到后换掉wndproc就可以了
SetWindowLong(hwnd,GWL_WNDPROC,(WNDPROC)newproc);[/quote]
引用 5 楼 fly_dragon_fly 的回复:
[quote=引用 3 楼 fly_dragon_fly 的回复:] windows 控制台程序在鼠标弹出没有任何标志出现,可以直接从hwnd中得到嘛 GetConsoleWindow, 得到后换掉wndproc就可以了
SetWindowLong(hwnd,GWL_WNDPROC,(WNDPROC)newproc);[/quote] 这是窗口子类化吧,应该是这个了

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧