1、图片在指定区域显示、采用刷图方式、可以随指针拖动、放大 缩小、
2、文件路径是通过参数传递的
3、程序中SHOW按钮显示图片 BT1 BT2 没有很好的代码效果 测试使用
4、Imageshow.h和CPP 可以再其他工程中直接使用、前提引用CXimage的Lib库
5、使用了CXimage的Lib库 在项目属性中配置下
6、可直接使用
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2014-11-14 10:34 PicShow
目录 0 2014-11-10 16:30 PicShowCxImage
文件 2836 2008-01-29 21:32 PicShowCxImagexfile.h
文件 2574 2004-06-27 19:31 PicShowCxImageximabmp.h
文件 1855 2008-01-28 23:05 PicShowCxImageximacfg.h
文件 4200 2008-01-29 00:00 PicShowCxImageximadef.h
文件 28464 2008-02-02 15:00 PicShowCxImageximage.h
文件 8034 2008-01-30 23:31 PicShowCxImageximagif.h
文件 1771 2007-12-28 22:43 PicShowCxImageximaico.h
文件 7135 2008-01-13 09:58 PicShowCxImageximaiter.h
文件 2622 2007-12-15 13:29 PicShowCxImageximajas.h
文件 1300 2007-11-01 10:06 PicShowCxImageximajbg.h
文件 9517 2008-01-28 22:57 PicShowCxImageximajpg.h
文件 2157 2007-12-28 22:42 PicShowCxImageximamng.h
文件 2166 2008-01-28 22:39 PicShowCxImageximapcx.h
文件 2380 2008-01-17 21:52 PicShowCxImageximapng.h
文件 3158 2007-12-17 20:35 PicShowCxImageximaraw.h
文件 1219 2007-09-25 20:07 PicShowCxImageximaska.h
文件 2104 2008-01-20 09:02 PicShowCxImageximatga.h
文件 802 2004-06-01 22:05 PicShowCxImageximath.h
文件 2139 2007-11-01 10:06 PicShowCxImageximatif.h
文件 1424 2007-12-28 22:01 PicShowCxImageximawbmp.h
文件 4981 2008-01-28 23:46 PicShowCxImageximawmf.h
文件 2999 2007-12-15 14:44 PicShowCxImagexiofile.h
文件 1000 2007-12-15 14:40 PicShowCxImagexmemfile.h
目录 0 2014-11-12 09:41 PicShowDebug
文件 1744896 2014-11-14 10:29 PicShowDebugPicShow.exe
文件 5429 2014-11-12 09:41 PicShowDebugPicShow.exp
文件 3464400 2014-11-14 10:29 PicShowDebugPicShow.ilk
文件 9510 2014-11-12 09:41 PicShowDebugPicShow.lib
文件 6097920 2014-11-14 10:29 PicShowDebugPicShow.pdb
............此处省略81个文件信息
// 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 PicShowCxImage
文件 2836 2008-01-29 21:32 PicShowCxImagexfile.h
文件 2574 2004-06-27 19:31 PicShowCxImageximabmp.h
文件 1855 2008-01-28 23:05 PicShowCxImageximacfg.h
文件 4200 2008-01-29 00:00 PicShowCxImageximadef.h
文件 28464 2008-02-02 15:00 PicShowCxImageximage.h
文件 8034 2008-01-30 23:31 PicShowCxImageximagif.h
文件 1771 2007-12-28 22:43 PicShowCxImageximaico.h
文件 7135 2008-01-13 09:58 PicShowCxImageximaiter.h
文件 2622 2007-12-15 13:29 PicShowCxImageximajas.h
文件 1300 2007-11-01 10:06 PicShowCxImageximajbg.h
文件 9517 2008-01-28 22:57 PicShowCxImageximajpg.h
文件 2157 2007-12-28 22:42 PicShowCxImageximamng.h
文件 2166 2008-01-28 22:39 PicShowCxImageximapcx.h
文件 2380 2008-01-17 21:52 PicShowCxImageximapng.h
文件 3158 2007-12-17 20:35 PicShowCxImageximaraw.h
文件 1219 2007-09-25 20:07 PicShowCxImageximaska.h
文件 2104 2008-01-20 09:02 PicShowCxImageximatga.h
文件 802 2004-06-01 22:05 PicShowCxImageximath.h
文件 2139 2007-11-01 10:06 PicShowCxImageximatif.h
文件 1424 2007-12-28 22:01 PicShowCxImageximawbmp.h
文件 4981 2008-01-28 23:46 PicShowCxImageximawmf.h
文件 2999 2007-12-15 14:44 PicShowCxImagexiofile.h
文件 1000 2007-12-15 14:40 PicShowCxImagexmemfile.h
目录 0 2014-11-12 09:41 PicShowDebug
文件 1744896 2014-11-14 10:29 PicShowDebugPicShow.exe
文件 5429 2014-11-12 09:41 PicShowDebugPicShow.exp
文件 3464400 2014-11-14 10:29 PicShowDebugPicShow.ilk
文件 9510 2014-11-12 09:41 PicShowDebugPicShow.lib
文件 6097920 2014-11-14 10:29 PicShowDebugPicShow.pdb
............此处省略81个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)