WTL:如何利用滚动窗口ScrollWnd查看图片Image

这个问题说起来简单,做起来难。

虽然说是WTL,但我想MFC应该没有太大差别。

关键点:ScrollWindow,MoveWindow。

首先看ScrollWnd。

class ScrollWnd : public CWindowImpl<ScrollWnd,CWindow>  //MFC中直接继承CWnd,WTL的精髓就是模板
{
private:
	const int LINE;  //定义移动的距离
public:
	BEGIN_MSG_MAP(ScrollWnd)
		MSG_WM_VSCROLL(OnVScroll)
		MSG_WM_HSCROLL(OnHScroll)
	END_MSG_MAP()
public:
	ScrollWnd() : LINE(12) {  }
	void OnVScroll(UINT nSBCode,UINT,CScrollBar)
	{
		SCROLLINFO sif = { sizeof(SCROLLINFO),SIF_ALL };
		GetScrollInfo(SB_VERT,&sif);

		int oldPos = sif.nPos;
		switch(nSBCode)
		{
		case SB_TOP:	sif.nPos = sif.nMin;	break;
		case SB_BOTTOM:	sif.nPos = sif.nMax;	break;
		case SB_LINEUP:		sif.nPos -= LINE;	break;
		case SB_LINEDOWN:	sif.nPos += LINE;	break;
		case SB_PAGEUP:		sif.nPos -= sif.nPage;	break;
		case SB_PAGEDOWN:	sif.nPos += sif.nPage;	break;
		case SB_THUMBTRACK:	sif.nPos = sif.nTrackPos;	break;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值