之前想在网上找opencv基于MFC开发鼠标滚轮缩放图片,发现都不是很理想,干脆自个研究了一翻,在此分享出来,话不多说,直接上代码:
//头文件声明
double m_fZoom = 1.0;//初始缩放值
Mat m_oriMatImage;
Mat m_zoomMatImage;
//源文件代码
BOOL CopencvdemoDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
CRect rect;
GetDlgItem(IDC_PIC_DISPLAY)->GetWindowRect(&rect);
Point ptMouse(pt.x - rect.left, pt.y - rect.top);
Rect rectImage(0, 0, rect.right - rect.left, rect.bottom - rect.top);
if (rectImage.contains(ptMouse))
{
Mat matResize;
Rect showRect;
Mat oriMat = m_zoomMatImage.zeros(m_zoomMatImage.size(), m_zoomMatImage.type());
BOOL bIsImgSmallToDispCtrl = FALSE;
if