有个笨法,定义2个picture,一个可见,一个不可见。
不可见的存棋盘的图,每次重画都先读入棋盘的图,然后丛数组里读出数据画棋子。
可行

解决方案 »

  1.   

    每次下完棋子刷新棋盘不就可以了。windows和dos思路不同。
      

  2.   

    用BitBlt函数(api)你可以很方便的创建自己的"getimage"或"putimage'函数!创建一个不可见的图片框,get时,将棋子会覆盖的棋盘格区域用BitBlt拷贝到图片框,put时再覆盖出来就行了。也可以事先就准备好各种不同的棋盘格图片框,根据情况覆盖,这样就不需要get了!
    Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
      

  3.   

    同志们有没有什么不那么浪费资源的方法,至少也别再用一个picturebox呀
      

  4.   

    资源利用、开发效率、运行速度 都要考虑。我的方法,开发效率最高,最简单易懂
    mountlin(寻常) 运行速度最快
    要想最节省资源,那就麻烦了,用dx8吧,足够你吐血的。建议,如果程序较大,你对BitBlt较熟悉,可以用mountlin(寻常)的方法。(还是高射炮打蚊子了)。棋子用两种图片也成,一种是真实棋子图片,另一种是被棋子覆盖的棋盘的图片..... 
      

  5.   

    好像有个api叫CreateCompitabileDC,用那个api是不是能建立一个内存中的dc?如果那样的话,是不是能实现我的问题?
      

  6.   

    那就用IMAGE吧将图片先保存起来,使用BITBLT 或pictureclip控件将图片贴回
      

  7.   

    在你画棋子之前保存啊。我有点想不通,你既然对资源占用要求这么严格,为什么要用vb这种不环保的语言,随便采用vc(不用mfc)、BCB、DELPHI,提高的效率绝不是少一个图片框所能比的,而且用API也更方便!