一个很大的Bmp图片,把它显示出来当做背景
通过在这里提问知道可以用内存DC的防范解决闪烁
但又碰到缩放问题。
很多人都说显示大的Bmp图时,先把它放到内存DC中,然后在OnDraw中用BitBlt拷贝显示。
可现在的程序需要把位图缩放,但在OnDraw中使用StretchBlt,显然会重新造成闪烁。
于是我试图建立两个内存DC,一个放实际大小的位图A,另一个通过StretchBlt将A缩放到相应比例B,然后在OnDraw中直接用BitBlt显示
但是失败了,好像B中没有被缩放的A,显示一片空白。
另外还发现一个问题,两个内存DC先后SelectObject位图,后一个无法用BitBlt显示,现象与上个问题类似。
哪个位大虾给解释一下怎么将缩放的位图存到内存DC中啊??

解决方案 »

  1.   

    如果你是用来做背景,我看在OnEraseBkgnd()事件中StretchBlt会更好些。如果只是用一幅图做背景,根本用不着内存DC,一般只有在连续画几幅图时才会用到内存DC。
      

  2.   

    如果在OnEraseBkgnd()中显示,我拖动滚动条时怎么办,有个窗口在前面移动怎么办,拜托说的明白点,OK??
      

  3.   

    我也遇到显示BITMAP闪烁的问题
    我是这样解决的,不知对你有否帮助
    将要显示的EnableWindow设为true,其他的为false
      

  4.   

    re: nuaawyd(birdy)
    我倒!!!
      

  5.   

    双缓冲机制,将要现实的位图纸予以缓冲区内,然后全部显示,避免因重绘
    而闪烁,我用 java写过applet 用的就是这种方法