资源简介

1、图片在指定区域显示、采用刷图方式、可以随指针拖动、放大 缩小、 2、文件路径是通过参数传递的 3、程序中SHOW按钮显示图片 BT1 BT2 没有很好的代码效果 测试使用 4、Imageshow.h和CPP 可以再其他工程中直接使用、前提引用CXimage的Lib库 5、使用了CXimage的Lib库 在项目属性中配置下 6、可直接使用

资源截图

代码片段和文件信息

// ImageShow.cpp : 实现文件
//

#include “stdafx.h“

#include “ImageShow.h“


// CImageShow
#define BACK_CLORO_BLK RGB(105105105)

IMPLEMENT_DYNAMIC(CImageShow CWnd)

CImageShow::CImageShow(HWND pParentWnd /* = NULL */)
: m_bIsLButtonDown(FALSE)
 m_DrowRc(0000)
 m_VisableRc(0000)
 m_ImRc(0000)
 m_pt(00)
{

}

CImageShow::~CImageShow()
{
}


BEGIN_MESSAGE_MAP(CImageShow CWnd)
ON_WM_ERASEBKGND()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_MOUSEWHEEL()
ON_WM_DESTROY()
END_MESSAGE_MAP()


// CImageShow 消息处理程序
BOOL CImageShow::CreateEx(CString filepathDWORD dwExstyle LPCTSTR lpszWindowName DWORD dwstyle RECT &rc 
  HWND hWndParent HMENU nIDorHMenu LPVOID lpParam/* = NULL*/)
{
BOOL bRt = CWnd::CreateEx(dwExstyleAfxRegisterWndClass(CS_CLASSDC)lpszWindowNamedwstyle
rc.leftrc.top(rc.right - rc.left)(rc.bottom-rc.top)hWndParentnIDorHMenulpParam);


//BOOL bRt = CWnd::Create(_T(“Static“) _T(“showWind“) dwstyle rc CWnd::FromHandle(hWndParent) 88888);

if (bRt)
{
m_VisableRc = rc;
GetClientRect(&m_DrowRc);
/*m_ImageBK.Load(_T(“F:\\ScanImage\\show\\004.jpg“));*/
m_ImageBK.Load(filepath);
}
return bRt;
}

void CImageShow::OnDestroy()
{
CWnd::OnDestroy();
}

void CImageShow::OnLButtonDown(UINT nFlags CPoint point)
{

if (m_ImRc.PtInRect(point)) // 点击点是否在图片显示区
{
SetFocus();
m_bIsLButtonDown = TRUE;
m_pt = point;

else
{
return;
}

CWnd::OnLButtonDown(nFlagspoint);
}
void CImageShow::OnLButtonUp(UINT nFlags CPoint point)
{
m_bIsLButtonDown = FALSE;
CWnd::OnLButtonUp(nFlagspoint);
}

void CImageShow::onmousemove(UINT nFlags CPoint point)
{

if (m_bIsLButtonDown)
{
SetFocus();
//移动量
int move_x = point.x - m_pt.x;  
int move_y = point.y - m_pt.y;

CRect rc(m_ImRc);

//计算刷图新区域
rc.left += move_x;
rc.right = rc.left + m_ImRc.Width();
rc.top += move_y;
rc.bottom = rc.top + m_ImRc.Height();

CDC *pDC = GetDC();
m_ImageBK.Draw(pDC->GetSafeHdc()rc);

//计算新的需填充区域
if (point.x > m_pt.x)
{
CRect rcTemp(m_ImRc);
rcTemp.right = m_ImRc.left + move_x;
pDC->FillRect(&rcTemp (CBrush*)&CBrush(BACK_CLORO_BLK));
}
else if (point.x < m_pt.x)
{
CRect rcTemp(m_ImRc);
rcTemp.left = m_ImRc.right + move_x;
pDC->FillRect(&rcTemp (CBrush*)&CBrush(BACK_CLORO_BLK));
}

if (point.y > m_pt.y)
{
CRect rcTemp(m_ImRc);
rcTemp.bottom = m_ImRc.top + move_y;
pDC->FillRect(&rcTemp (CBrush*)&CBrush(BACK_CLORO_BLK));
}
else if (point.y < m_pt.y)
{
CRect rcTemp(m_ImRc);
rcTemp.top = m_ImRc.bottom + move_y;
pDC->FillRect(&rcTemp (CBrush*)&CBrush(BACK_CLORO_BLK));
}
m_ImRc = rc;
m_DrowRc = rc;

ReleaseDC(pDC);
}

m_pt.x = point.x;
m_pt.y = point.y;
CWnd::onmousemove(nFlagspoint);
}

BOOL CImageShow::OnEraseBkgnd(CDC* pDC)   //重绘 
{
if (m_ImRc.Width())
{

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-11-14 10:34  PicShow\
     目录           0  2014-11-10 16:30  PicShow\CxImage\
     文件        2836  2008-01-29 21:32  PicShow\CxImage\xfile.h
     文件        2574  2004-06-27 19:31  PicShow\CxImage\ximabmp.h
     文件        1855  2008-01-28 23:05  PicShow\CxImage\ximacfg.h
     文件        4200  2008-01-29 00:00  PicShow\CxImage\ximadef.h
     文件       28464  2008-02-02 15:00  PicShow\CxImage\ximage.h
     文件        8034  2008-01-30 23:31  PicShow\CxImage\ximagif.h
     文件        1771  2007-12-28 22:43  PicShow\CxImage\ximaico.h
     文件        7135  2008-01-13 09:58  PicShow\CxImage\ximaiter.h
     文件        2622  2007-12-15 13:29  PicShow\CxImage\ximajas.h
     文件        1300  2007-11-01 10:06  PicShow\CxImage\ximajbg.h
     文件        9517  2008-01-28 22:57  PicShow\CxImage\ximajpg.h
     文件        2157  2007-12-28 22:42  PicShow\CxImage\ximamng.h
     文件        2166  2008-01-28 22:39  PicShow\CxImage\ximapcx.h
     文件        2380  2008-01-17 21:52  PicShow\CxImage\ximapng.h
     文件        3158  2007-12-17 20:35  PicShow\CxImage\ximaraw.h
     文件        1219  2007-09-25 20:07  PicShow\CxImage\ximaska.h
     文件        2104  2008-01-20 09:02  PicShow\CxImage\ximatga.h
     文件         802  2004-06-01 22:05  PicShow\CxImage\ximath.h
     文件        2139  2007-11-01 10:06  PicShow\CxImage\ximatif.h
     文件        1424  2007-12-28 22:01  PicShow\CxImage\ximawbmp.h
     文件        4981  2008-01-28 23:46  PicShow\CxImage\ximawmf.h
     文件        2999  2007-12-15 14:44  PicShow\CxImage\xiofile.h
     文件        1000  2007-12-15 14:40  PicShow\CxImage\xmemfile.h
     目录           0  2014-11-12 09:41  PicShow\Debug\
     文件     1744896  2014-11-14 10:29  PicShow\Debug\PicShow.exe
     文件        5429  2014-11-12 09:41  PicShow\Debug\PicShow.exp
     文件     3464400  2014-11-14 10:29  PicShow\Debug\PicShow.ilk
     文件        9510  2014-11-12 09:41  PicShow\Debug\PicShow.lib
     文件     6097920  2014-11-14 10:29  PicShow\Debug\PicShow.pdb
............此处省略81个文件信息

评论

共有 条评论