m_hdc=getdc(form1.hwnd)
rectangle m_hdc,100,100,200,200
________________________________
在改变窗口大小时,上面绘制的矩形就会被清除掉一部分.问题:如何用api实现像autoredraw=true这样的效果?要求:不要问楼主为什么要这样做,这样做有什么意义等问题,也不要用在改变窗口事件中,调用上面的语句进行绘制矩形的方法,原因是如果要绘制复杂的图形,在改变窗口大小时就会出现频繁的绘制计算而出现闪烁,谢谢!

解决方案 »

  1.   

    form1.hDC
    就可以了,没必要getdc
      

  2.   

    autoredraw是窗体的问题,不是一个外部API函数能控制的,在Form_Paint里面画吧
      

  3.   

    CSDN论坛规定:给分最高不能超过答题者的信誉分,viena若想拿满5分,还得回复2次^_^
      

  4.   

    goto viena:
        难道分数这么重要吗,如果你能完全的帮助我解决问题,我可以把我全部的分都给你.
      

  5.   

    楼主这话不该对viena说,虽然分很少,但毕竟只有他在帮你,他并没认为你的分少呀!他只是告诉你,分少了,很难再有别人帮你,一片好心呀!你的问题有两点不明:
    1、form1的autoredraw现在是什么值?
    2、你的代码是否位于Form_Paint事件中?不管哪种,从你的要求看,getdc肯定不合适!你需对VB的双缓冲机制有所了解,才能考虑用它。