资源简介
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个文件信息
相关资源
- 基于MFC的多人聊天室
- C++、MFC连接MYSQL实现增删改查
- vc_mbcsmfc
- MFC 使用Opencv调用摄像头并显示画面,
- haar分类器人脸检测MFC实现
- 基于SQL vs2013的学生成绩管理系统
- OpenGL+MFC三维绘图
- MFC界面 8数码A星算法
- VC++2010 VC上位机 20个教程 零基础 极速
- MFC自绘窗口的边框和标题
- MFC 计算器
- MFC完美版中文帮助文档
- 基于产生式的动物识别系统可视化
- 基于VS和MFC的停车场管理系统
- c++ 连连看
- VS2017 MFC对话框程序打印及打印预览的
- 基于VS2017 MFC 的OpenCV图像处理
-
在ob
jectARX(VC)中使用MFC-可停靠窗 - MFC opencv 显示图片
- 计算机图形学(MFC)-Bezier曲面
- RS232串口通讯VS2010
- 基于MFC的扫雷
- VC++深入详解-完整带详细书签
- MFC俄罗斯方块设计报告
- 象棋C++源程序.rar
- duilib进阶教程.zip
- 递归下降语法分析器C++实现
- mfc 毕业设计管理系统
- MFC读入txt画二维折线图和运行算法画
- 鸡啄米:VS2010-MFC编程入门教程1-55.d
评论
共有 条评论