如何在c或C++中使用鼠标移动图形矩形。 这是一些类似于windows中的可移动消息框。 我如何在c/C++图形应用程序中这样做? 感谢提前...如何在c或C++中通过鼠标左键拖动图形矩形
1
A
回答
2
选择您的平台... Windows,Mac,Linux或其他。
选择一个API ... GDI,DirectX,OpenGL
在窗口上,使用winAPI中的GetCurPos()找到鼠标坐标。
在openGl中,绘制一个矩形涉及glBegin()。 GlEnd()以及中间的呼叫。
在GDI中,Rectangle()应该可以做到。
2
从亚历山大的回答遵循移动它(这是伪代码,因为我不知道你是什么平台上)
Point m_ptOld;
bool m_bLDown;
void handle_onLeftMouseDown(const Point& pt)
{
m_ptOld = pt;
m_bLDown = true;
}
void handle_onLeftMouseUp(const Point& pt)
{
m_bLDown = false;
}
void handle_onMouseMove(const Point& pt)
{
if(m_bLDown)
{
Point ptNew = pt;
Size delta(ptNew - ptOld);
// Move your rectangle by Size.cx, Size.cy
}
}
编辑:意识到我并没有表现出与鼠标交互代码按钮。再一次,没有平台的想法,所以采取一粒盐。我知道,在Win32鼠标事件中,您可以查看左/右/中键是否作为事件处理程序的一部分关闭。这纯粹是理论上的。
您将不得不指定您使用的平台/框架。到目前为止,你有什么,你有什么尝试,你有一个具体的问题? – 2010-11-11 10:26:23
opengl? DIRECTX?哪个OS? – 2010-11-11 10:27:04