我已经把“view”窗口嵌入到mfc控件中(如下图代码),打算用opencv的鼠标事件来进行操作,然而我在用setMouseCallback("view", on_mouse, NULL)调用函数on_mouse时,on_mouse函数里的鼠标滚轮事件完全不响应,其他却可以响应,请问是什么原因??
// TODO: 在此添加额外的初始化代码
CWnd *pWnd1 = GetDlgItem(IDC_abc);//CWnd是MFC窗口类的基类,提供了微软基础类库中所有窗口类的基本功能。
pWnd1->GetClientRect(&rect1);//GetClientRect为获得控件相自身的坐标大小
namedWindow("view", WINDOW_AUTOSIZE);//设置窗口名
HWND hWndl = (HWND)cvGetWindowHandle("view");//hWnd 表示窗口句柄,获取窗口句柄
HWND hParent1 = ::GetParent(hWndl);//GetParent函数一个指定子窗口的父窗口句柄
::SetParent(hWndl, GetDlgItem(IDC_abc)->m_hWnd);
::ShowWindow(hParent1, SW_HIDE);//ShowWindow指定窗口中显示
按钮函数:
void CmouseDlg::OnBnClickedButton3()
{
int NewHeight = rect1.bottom;
int NewWidth = rect1.right;
cv::Size NewSize(NewWidth, NewHeight);
cv::Mat cvImgScaled(NewSize, CV_8UC3);
resize(cvImg, cvImgScaled, NewSize);
cvImgScaled.copyTo(img); //图片接口
cvImgScaled.copyTo(tmp); //临时变量
namedWindow("view");//定义一个img窗口
setMouseCallback("view", on_mouse, NULL);//调用回调函数
imshow("view", cvImgScaled);
}