将控制台中的指标从字符更改为像素

时间:2014-03-30 08:51:15

标签: c++ visual-c++ msdn

我想知道,有没有办法在控制台窗口点击鼠标并通过像素获取x y位置而不是像控制台模式设置的字符? 即我点击控制台上的(350,250)像素,但返回的位置是(例如),我在谷歌搜索但没有找到任何有用的东西。

1 个答案:

答案 0 :(得分:1)

这会让你更进一步:

  1. GetConsoleWindow()调用到运行流程的控制台的句柄。
  2. 调用GetConsoleFontSize()以获取控制台字体的宽度和高度(以像素为单位)。
  3. 调用GetConsoleScreenBufferInfo()以获取屏幕缓冲区大小。
  4. 致电PeekConsoleInput()ReadConsoleOutput(),阅读您应该在Low-Level Console Input Functions上阅读的控制台内容,了解这里发生了什么。
  5. This MSDN article说明如何获取控制台点击事件
  6. 现在你知道如何获得鼠标点击坐标并且你可以访问控制台的缓冲区内容,通过划分X&可以很容易地计算出被点击的字符。 Y与字体宽度和高度协调。