举例说明在MFC应用程序中操作滚动条所必须的重要操作(MFC)

 我来答
匿名用户
2013-08-13
展开全部

建立工程时,将 View 类继承自 CScrollView

2、
在 OnInitialUpdate 中添加初始化时 Scroll 的相关属性值

CSize sizeTotal(0,0);

SetScrollSizes(MM_TEXT,sizeTotal);

3、
打开文件 ( 图像后 ) 根据图像的大小,设置滚动属性值

ChangeScrollRange();
// 自定义函数

4、
在 View 类中添加成员变量。

作用是存储图像显示位置与原点的 offset

int

m_ImgVScrollPos ;

//
VScroll distance

int

m_ImgHScrollPos ;

//
HScroll distance

5、
滚动处理

添加自定义响应 WM_VSCROLL 、 WM_HSCROLL 消息的事件函数: OnVScroll 、 OnHScroll

void CSockIIView :: OnVScroll ( UINT nSBCode , UINT nPos , CScrollBar * pScrollBar )

{

// TODO: Add your message handler code here and/or call default

SCROLLINFO si ;

GetScrollInfo ( SB_VERT ,& si , SIF_ALL );

m_ImgVScrollPos = si . nPos ;

Invalidate ( TRUE );

CScrollView :: OnVScroll ( nSBCode , nPos , pScrollBar );

}

6、
图像显示

更改 OnPaint 函数中图像显示的代码:

dc . BitBlt ( rc . left , rc . top , rc . Width (), rc . Height (), m_pMemDC , rc . left , rc . top , SRCCOPY );

为:

dc.BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),m_pMemDC,(rc.left+m_ImgHScrollPos),(rc.top+m_ImgVScrollPos),SRCCOPY);

备注:

Ø

SetScrollSizes() MFC 库函数,设置滚动条属性。参数含义参见 MSDN 。

void SetScrollSizes(

int nMapMode,

// 影射模式。

SIZE sizeTotal,

// 滚动范围,即所有 page 加起来的高度或宽度

const SIZE& sizePage = sizeDefault,

// 每页的大小。根据模式的不同,度量的尺度不同

const SIZE& sizeLine = sizeDefault

// 每行的大小。根据模式的不同,度量的尺度不同

);

nMapMode ,一般使用 MM_TEXT ,以像素为单位。参见 MSDN

Ø

BitBlt : 将内存中的图拷贝到屏幕上进行显示。参数含义 参见 MSDN 。

BOOL BitBlt(

HDC hdcDest,
// handle to destination DC

int nXDest,

// x-coord of destination upper-left corner

int nYDest,

// y-coord of destination upper-left corner

int nWidth,

// width of destination rectangle

int nHeight,

// height of destination rectangle

HDC hdcSrc,
// handle to source DC

int nXSrc,

// x-coordinate of source upper-left corner

int nYSrc,

// y-coordinate of source upper-left corner

DWORD dwRop // raster operation code

);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式