BOOL ScrollDC(HDC,int,int,CONST RECT *,CONST RECT *,HRGN ,LPRECT);

BOOL ScrollDC(
  HDC hDC,                 // handle to DC
  int dx,                  // horizontal scrolling
  int dy,                  // vertical scrolling
  CONST RECT *lprcScroll,  // scrolling rectangle
  CONST RECT *lprcClip,    // clipping rectangle
  HRGN hrgnUpdate,         // handle to scrolling region
  LPRECT lprcUpdate        // update rectangle
);

昨天在看一本书的时候发现了这个函数,看了半天不知道这些参数是什么意思,实在很费解。上网一查,找到的只是一下MSDN的翻译,不知道是因为这个函数太简单,大家都知道怎么用,还是大家没有用过这个函数。

我来简单的说我下我的理解吧,因为水平有限,希望大家多多指正。

lprcCilp定义一个矩形,我们只能移动这个矩形里的东西,当然可以把里面的东西移动到这个矩形的外面。

lprcScroll定义了我们移动的矩形,当然我们只能移动lprcScroll在lprcClip中的部分。

hrgnUpdate定义的是一个区域,MSDN上写的是【in】,但是我认为它是一个【out】,函数执行后,hrgnUpdate.GetRgnBox(&rc);rc的值和lprcUpdate一模一样。

lprcUpdate定义的是一个矩形区域,他表示的范围是,移动之前占有,但是之后不占有的区域。

看了好像还是云里雾里,举个例子吧。

比如我们在lprcClip(20,20,100,100)里,移动一个lprcSrcoll(30,30,120,120)的矩形,我们移动的是(30,30,100,100),dx=0不移动,dy=20向下移动20,

(30,30,100,80)的图像将会移动到(30,50,100,100),lprcUpdate为(30,30,100,50)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值