如何等待多次鼠标点击
c++ How to wait for multiple mouse clicks
我想在图形库中绘制一个三角形。但是,我不知道如何编写允许我使用三次鼠标点击来绘制三角形的代码。文档中的代码如下:
while (!main_disp.is_closed() && !draw_disp.is_closed())
{
main_disp.wait();
if (main_disp.button() && main_disp.mouse_y()>=0)
http://cimg.sourceforge.net/reference/group__cimg__tutorial.html 但是它是针对一次鼠标点击,我成功地实现了在鼠标点击上画一个圆圈。但事实证明,对我来说,点击三次或两次鼠标是很困难的。
我也有输入我想要的颜色的问题。例如,我将红色写成:
const unsigned char red[] = {250, 0, 0};
然后我想让用户选择颜色,输入他的选择(假设是红色),然后将红色的定义传递到图像中。
有谁能帮忙吗?!
如果您知道如何检测鼠标按钮何时被单击,则可以存储有关该单击的信息以供以后使用。例如,您可以在deque
中存储以前的鼠标点击。
struct point
{
int x,y;
};
...
std::deque<point> clicks;
while (!main_disp.is_closed() && !draw_disp.is_closed())
{
main_disp.wait();
if (main_disp.button())
{
clicks.push_front({mouse_disp.mouse_x(), mouse_disp.mouse_y()});
if (clicks.size() >= 3)
{
// draw a triangle using clicks[0], clicks[1] and clicks[2]
}
}
}
相关文章:
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何让LLDB在成功时退出,在失败时等待
- WinAPI挂钩鼠标
- Python中的for循环与C++有何不同
- 将鼠标悬停在问题上时与预期">"相关的代码错误
- 跟踪滚动条上的鼠标事件
- SendInput()鼠标移动计算
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 如何在鼠标挂钩过程中检测拖动
- 等待整个 omp 块完成,然后再调用第二个函数
- 提升 ASIO - io_service 不要等待连接到线程
- 如何在C++中实现带有packaged_task的异步等待循环?
- Win32 发送输入鼠标移动滞后并冻结
- 虚假唤醒是否会解锁所有等待线程,甚至是不相关的线程?
- 在C++中释放内存期间,迭代器与指针有何不同
- 如何等待窗口隐藏在Qt中?
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- 如何在不等待检索的情况下获取C++中的内存位置?