各位大侠,我在对话框上做了个可以拖动的STATIC静态控件,现在实现了可以拖动。对话框的背景是PDF文件的页面(用PDF的SDK写上去的,写到对话框客户区里),现在我只要拖动控件,就会拖动后,擦除掉PDF的内容(擦掉控件刚才经过的那块区域)。求助大侠呀。我看了网上的解决方法,可以用双缓冲,重绘背景,将背景图读入内存DC中。但是现在我的背景是个PDF页面呀,没法读进内存DC。
其中,PDF写页面的函数如下:m_pAcroPDPage->DrawEx((long)m_hWnd, NULL, NULL,0,0,100);。m_pAcroPDPage是PDF某个页面的指针(在其它函数中已初始化过,显示出来没问题),m_hWnd是客户区的句柄。
大家明白没呀?帮帮我呀。该怎么弄。如果将控件经过的那块区域DPF页面内容取出来,读进内存DC,可是怎么取呀?

解决方案 »

  1.   

    对话框设置WS_CLIPCHILDREN属性试试
      

  2.   

    楼上的大侠 ,我试了。设置后,现在只要一拖动控件,PDF页面就消失不见了。我以前采取的方法是,在ONPAINT中,再写一个m_pAcroPDPage->DrawEx((long)m_hWnd, NULL, NULL,0,0,100)函数,这样每一将你 重绘就会重新把PDf页面绘制上去。可是这样,拖动的时候 闪烁的特别厉害!请大侠帮帮忙呀!谢谢!
      

  3.   

    上面有句话写错了,应该是:这样每一次拖动就会重新把PDF页面绘制上去。
    大侠们,求助呀。万分感激。
      

  4.   

    对话框响应消息OnEraseBkground,直接返回TRUE。试试?
      

  5.   

    还是不行呀。一拖动,拖动的静态文本框控件经过的区域,就会把本来的PDf页面内容擦除掉。求助!
      

  6.   

    "拖动的静态文本框控件经过的区域" 把这个区域记录下来,然后InvalidateRectangular(&rc).
      

  7.   

    每次移动时立即redrawwindow(),或者使用定时器,不停的画背景