2010-11-11 61 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鼠標事件中,您可以查看左/右/中鍵是否作爲事件處理程序的一部分關閉。這純粹是理論上的。

相關問題