赞
踩
首先,先来看下问题,如果窗口大小改变了,如何将后台缓存的大小随着改变?
第一步:先来解决如何判断窗口大小改变了,学过Windows编程的人都知道,在处理消息的回调函数中可以进行判断,没错,就是那个像MsgProc()的函数,在里面,可以处理Windows发送来的消息,可以在里面判断按下了哪个键,窗口是否创建,是否被关闭之类的消息。其中有一个WM_SIZE的消息,看到它的名字就可以知道它是干嘛用的啦,不过要注意的是,什么时候Windows会发错WM_SIZE的消息呢?
(1) 当窗口刚建立的时候,
(2) 当窗口的大小发生改变的时候,
(3) 当你调用了SetWindowPos()的时候,
(4) 当窗口最大化或最小化的时候。
都会发出WM_SIZE的信息,剩下的就看里怎么处理,当这里我还有一点想提的就是,那个SetWindowPos() 函数,它可以将窗口调整为指定的大小,但是你千万不要将它放入WM_SIZE的处理里面,不然它就进入一个死循环,因为你不断的调用SetWindowPos()会不断的发出WM_SIZE的消息。</