相信坛里的很多人都看过这个《transparent flash control in plain C++》 有点久远了 不知道还有没有人在关注通过自定义一个包容器 再利用layer window来实现    其主要功能都是在Draw(HDC hdcDraw, const RECT *rcDraw, BOOL bErase)里现在无意发现这里面有个疑问:
通过单步跟踪发现并不是每次UpdateLayeredWindow()都会立刻显示窗口的;
有的swf文件是每次UpdateLayeredWindow()后立刻显示窗口,但有的swf文件是每3次(也不一定就是3次)UpdateLayeredWindow()才会显示窗口,也有一些swf文件前面部分是每次UpdateLayeredWindow()就显示 而后面部分却不是大家分析一下这是什么原因

解决方案 »

  1.   

    没有人啊   自己顶一下查了些资料 发现swf还有什么的: 重绘区域  三区域法则和就近合并法则
    比较难懂 大概是这样:每次不会有超过3个区域重绘   如果有超过3个则合并那些就近区域
    (还有一个说法叫:分阶段重绘)这样重绘每个区域时都会去执行那个Draw(HDC hdcDraw, const RECT *rcDraw, BOOL bErase)
    这样就出现了上面提到的那个现象那么在vc里如何知道应该在哪次(或称为阶段)重绘时才应该需要呈现到窗口上   而其他时候只需要在内存dc里重绘就可以了  这样可以提高效率