win32控制台获取鼠标事件

HD才不是混蛋 2012-09-21 12:49:31
printf()输出之后怎么做才不影响控制台获取鼠标单击事件?
比如把程序里的注释删掉以后怎么达到之前的效果?

#include <windows.h>
#include <stdio.h>
#include <string.h>

HANDLE hOut;
HANDLE hIn;

void main()
{
INPUT_RECORD mouseRec;
DWORD state = 0, res;
COORD pos;
hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 获取标准输出设备句柄
hIn = GetStdHandle(STD_INPUT_HANDLE); // 获取标准输入设备句柄
while(1)
{
//printf("123");
ReadConsoleInput(hIn, &mouseRec, 1, &res);
if (mouseRec.EventType==MOUSE_EVENT)
{
if (mouseRec.Event.MouseEvent.dwButtonState==FROM_LEFT_1ST_BUTTON_PRESSED)
{
pos=mouseRec.Event.MouseEvent.dwMousePosition;
printf("(%d,%d)",pos.X,pos.Y);
}
}
}
}
...全文
367 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HD才不是混蛋 2012-09-22
  • 打赏
  • 举报
回复
你吧代码运行下看看注释那部分加上跟删了有什么区别就明白了[Quote=引用 2 楼 的回复:]

不明白你想说什么
[/Quote]
「已注销」 2012-09-22
  • 打赏
  • 举报
回复
系统的消息机制理解透彻?这里不管是鼠标移动,左键右键都会触发一个循环,这多输出那么多东西有什么奇怪的呢。不然你想要怎么样啊
冷月清晖 2012-09-22
  • 打赏
  • 举报
回复
加一行
fflush(stdin);
试试
冷月清晖 2012-09-21
  • 打赏
  • 举报
回复
建议输出到文件中试试。
「已注销」 2012-09-21
  • 打赏
  • 举报
回复
不明白你想说什么

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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