這裡主要是訓練怎麼去響應滑鼠響應事件,那怎麼去定義滑鼠響應函式呢?
void cvmousecallback(
int event;//滑鼠響應事件的型別如滑鼠右鍵彈起,右鍵按下,cv_event_lbuttondown,cv_event_lbuttondown)
int x,//滑鼠響應是所在的位置,這裡x,y是指畫素座標,所以與視窗的大小無關,它只是用畫素來定位
int y,
int falgs,//指定了每乙個事件在發生時的不同狀態
void *param//這個引數由註冊滑鼠響應時間的時候傳入
)//cvmousecallback名字是可以改變的,不準確,應該說必須改---
另外乙個重要函式就是
cvsetmousecallback(
const char*window_name,//視窗的名字,也就是你要捕獲哪個視窗的滑鼠響應事件
cvmousecallback on_mouse,//你的滑鼠響應事件函式的名字
void * param=null//這個引數就是就是要傳進滑鼠響應事件的引數,在本例中,我使用的是將影象的位址傳進去
}下面附上
#include "cv.h"
#include "highgui.h"
#include "math.h"
bool flag=false;
cvrect box;
void mouse_call_back(int event,int x,int y,int flags,void *param)
}int main()
cvwaitkey(0);
cvdestroywindow("mouse");
return 0;
}
結果如下: 在視窗中繪製滑鼠拖曳框
chapter i 在wm mousemove中繪製.有時候要求在乙個視窗中繪製滑鼠的拖曳框,就像是使用者在桌面上拖曳圖示顯示的框一樣.對於這樣的矩形框windows的api提供了乙個函式drawfocusrect,當然這個函式是可以的,不過這個函式有兩個小問題,那就是它的第二個引數是乙個rect引...
VC 滑鼠事件的響應
滑鼠鍵包括左鍵 右鍵和中鍵 滾輪 每個鍵都有三種事件訊息,一是被按下,二是被釋放,三是雙擊。下表列出了滑鼠操作 訊息名稱及處理函式名。滑鼠操作 訊息名稱 處理函式名 左鍵按下 wm lbuttondown onlbuttondown 左鍵釋放 wm lbuttonup onlbuttonup 左鍵雙...
滑鼠在視窗中的座標轉換到 canvas 中的座標
由於需要用到ispointinpath函式,所以必須得將滑鼠在視窗中的座標位置轉換到canvas畫布中的座標,今天發現網上這種非常常見的寫法其實是錯誤的!如下 1.function windowtocanvas canvas,x,y 7.什麼時候會發生錯誤呢?看下面的livescript 1.can...