社区
界面
帖子详情
WIN2000中的放大镜如何实现?
bjcaoyi
2002-12-02 03:43:35
哪位知道WIN2000中的放大镜如何编写,讲讲原理就行了,主要是如何放大屏幕,VC中有没有相关的函数。望高手指点!
...全文
27
4
打赏
收藏
WIN2000中的放大镜如何实现?
哪位知道WIN2000中的放大镜如何编写,讲讲原理就行了,主要是如何放大屏幕,VC中有没有相关的函数。望高手指点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fingerfox
2002-12-02
打赏
举报
回复
void CImageWnd::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (m_bCaputred) //"Lens" is active
{
if ( point.x < 0 || point.y < 0 ) { Hide();return;}
if ( point.x > 0 && point.y > 0 && IsHide()) Display();
SetCursor(NULL); //Hide a cursor
//Reposition a "lens"
m_CurPoint = CPoint(point.x - m_nSize / 2,point.y - m_nSize / 2);
pMagnGlass->MoveWindow(CRect(point.x - m_nSize / 2,point.y - m_nSize / 2,point.x - m_nSize / 2 + m_nSize, point.y - m_nSize / 2 + m_nSize),FALSE);
//Force to redraw
Invalidate(FALSE);
UpdateWindow();
pMagnGlass->Invalidate(FALSE);
pMagnGlass->UpdateWindow();
}
else //"Lens" is hidden - restore cursor
{
SetCursor(m_curMgnfy);
}
CWnd::OnMouseMove(nFlags, point);
}
void CImageWnd::OnLButtonUp(UINT nFlags, CPoint point)
{
//Inactivate a "lens"
/*
pMagnGlass->ShowWindow(SW_HIDE); //Hide a "lens"
ReleaseCapture(); //Restore mouse input
m_bCaputred = FALSE; //Flag
RefreshImage(TRUE); //Redraw a view
Invalidate(FALSE); //Redraw itself
UpdateWindow();
*/
CWnd::OnLButtonUp(nFlags, point);
}
void CImageWnd::Hide()
{
//Inactivate a "lens"
pMagnGlass->ShowWindow(SW_HIDE); //Hide a "lens"
ReleaseCapture(); //Restore mouse input
// m_bCaputred = FALSE; //Flag
m_HideFlag = TRUE; //Flag
RefreshImage(TRUE); //Redraw a view
Invalidate(FALSE); //Redraw itself
UpdateWindow();
}
void CImageWnd::Close()
{
//Inactivate a "lens"
pMagnGlass->ShowWindow(SW_HIDE); //Hide a "lens"
DestroyWindow();
// ReleaseCapture(); //Restore mouse input
}
fingerfox
2002-12-02
打赏
举报
回复
/////////////////////////////////////////////////////////////////////////////
// CImageWnd message handlers
BOOL CImageWnd::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
cs.lpszClass = AfxRegisterWndClass( NULL, NULL, (HBRUSH) NULL);
cs.style = WS_CLIPCHILDREN | WS_CHILD ;
return CWnd::PreCreateWindow(cs);
}
int CImageWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CWnd::OnCreate(lpCreateStruct) == -1)
return -1;
pMagnGlass->Create(
AfxRegisterWndClass( NULL, NULL, (HBRUSH) GetStockObject(NULL_BRUSH)),
NULL, WS_CHILD, CRect(0,0,0,0), this, 0xffff);
return 0;
}
void CImageWnd::OnLButtonDown(UINT nFlags, CPoint point)
{
//Save the image of a view to a bitmap member
CWnd::OnLButtonDown(nFlags, point);
}
void CImageWnd::Display()
{
//Save the image of a view to a bitmap member
RefreshImage(TRUE);
SaveImage();
// m_CurPoint = CPoint(point.x - m_nSize / 2,point.y - m_nSize / 2); //Save current cursor
m_CurPoint = CPoint(200- m_nSize / 2,200- m_nSize / 2);
SetCapture();
m_bCaputred = TRUE;
m_HideFlag = FALSE;
//Reposition and show "lens"
pMagnGlass->MoveWindow(CRect(200- m_nSize / 2,200- m_nSize / 2,200+ m_nSize / 2,200+ m_nSize / 2));
pMagnGlass->ShowWindow(SW_SHOW);
}
fingerfox
2002-12-02
打赏
举报
回复
// ImageWnd.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include <ImageWnd.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CImageWnd
#define RECTANGULAR 1
#define ROUND 2
CImageWnd::CImageWnd()
{
//Create a "lens" object
pMagnGlass = new CMagnWnd;
//Default values of Magnify Glass properties
m_nShape = ROUND;
m_bCaputred = FALSE;
m_HideFlag = FALSE;
m_nZoom = 30;
m_nSize = 210;
}
CImageWnd::~CImageWnd()
{
m_bmp.DeleteObject();
delete pMagnGlass;
}
BEGIN_MESSAGE_MAP(CImageWnd, CWnd)
//{{AFX_MSG_MAP(CImageWnd)
ON_WM_LBUTTONDOWN()
ON_WM_MOUSEMOVE()
ON_WM_LBUTTONUP()
ON_WM_CREATE()
ON_WM_PAINT()
ON_WM_RBUTTONDOWN()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
zhaolaoxin
2002-12-02
打赏
举报
回复
up
vc++ 应用源码包_1
自绘了CListCtrl 控件,
实现
了其它控件阙套到List
中
并自绘等。主要的
实现
在CListReport类
中
。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Dra
win
g 演示了其它控件(全部)阙套到List
中
并自绘等,...
vc++ 应用源码包_2
自绘了CListCtrl 控件,
实现
了其它控件阙套到List
中
并自绘等。主要的
实现
在CListReport类
中
。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Dra
win
g 演示了其它控件(全部)阙套到List
中
并自绘等,...
vc++ 应用源码包_6
自绘了CListCtrl 控件,
实现
了其它控件阙套到List
中
并自绘等。主要的
实现
在CListReport类
中
。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Dra
win
g 演示了其它控件(全部)阙套到List
中
并自绘等,...
vc++ 应用源码包_5
自绘了CListCtrl 控件,
实现
了其它控件阙套到List
中
并自绘等。主要的
实现
在CListReport类
中
。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Dra
win
g 演示了其它控件(全部)阙套到List
中
并自绘等,...
vc++ 应用源码包_3
自绘了CListCtrl 控件,
实现
了其它控件阙套到List
中
并自绘等。主要的
实现
在CListReport类
中
。 CListCtrlTest 演示了重载CListCtrl后的使用方法。 CListItem Dra
win
g 演示了其它控件(全部)阙套到List
中
并自绘等,...
界面
15,978
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章