2010-11-11 181 views
1

如何在c或C++中使用鼠标移动图形矩形。 这是一些类似于windows中的可移动消息框。 我如何在c/C++图形应用程序中这样做? 感谢提前...如何在c或C++中通过鼠标左键拖动图形矩形

+3

您将不得不指定您使用的平台/框架。到目前为止,你有什么,你有什么尝试,你有一个具体的问题? – 2010-11-11 10:26:23

+1

opengl? DIRECTX?哪个OS? – 2010-11-11 10:27:04

回答

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鼠标事件中,您可以查看左/右/中键是否作为事件处理程序的一部分关闭。这纯粹是理论上的。