要實現的功能實際上很簡單,一般人都用到見慣不慣了,但是實現起來還是有點意思的。
問題詳細描述:(三步)
單擊滑鼠左鍵時記錄下單擊點;
滑鼠拖動時,顯示的矩形框能夠動態的跟隨顯示;
釋放滑鼠左鍵時擦出矩形框。
這樣分析其實問題就簡單一些了,只需要對滑鼠的三個事件進行相應就可以了。
**主要在三處地方修改了:
第一處:view類中設定私有變數(view類.h檔案中)
private:
bool m_startrect; //繪製矩形框標誌
cpoint m_startpoint; //矩形框開始點
cpoint m_oldpoint; //矩形框終點(但是它是上一次的點,所以這裡用了old標識)
第二處:view類建構函式中初始化私有變數(view類.cpp檔案中)
cmousedragview::cmousedragview()
第三處:定義訊息響應函式(view類.cpp檔案中)
//單擊滑鼠左鍵
void cmousedragview::onlbuttondown(uint nflags, cpoint point)
//拖動滑鼠
void cmousedragview::onmousemove(uint nflags, cpoint point)
cview::onmousemove(nflags, point);}
//釋放滑鼠左鍵
void cmousedragview::onlbuttonup(uint nflags, cpoint point)
C 控制項篇 滑鼠拖動動態新增的控制項
專案需要對panel裡動態新增的控制項可用滑鼠移動位置,在csdn上找到乙個工程,完全符合要求 記錄下來,以備後用 為了突出智財權,以下 來自 region common mouse event private point mouse offset private point original po...
滑鼠拖動這個矩形 GDI
public partial class moverect form protected override void onpaint painteventargs e protected override void onmousedown mouseeventargs e protected ove...
QOpenglWidget 畫動態矩形
使用的都是opengl的函式,只不過qt再封裝了一遍 在使用過程中有一些注意點,需要記下。我的標頭檔案申明如下 ifndef gldrawwidget h define gldrawwidget h include include include qt forward declare class q...