用API,其实就是为了避免闪烁
1 在屏幕上画带颜色的矩型
2 我在图片上贴图片的时候,会闪烁. 背景是不变的.就是前景的图片会移动.背景是个PICTUREBOX,前景是个IMAGE.这样会闪烁....有没有API能把前景寸在内存里,然后贴出来.不要的时候再察除.这样我想就不会闪烁了.可能我表达有问题.但只要能实现不闪烁就好了....问题解决100分相送.谢谢

解决方案 »

  1.   

    1 在屏幕上画带颜色的矩型
    Line 方法
          在对象上画直线和矩形。语法object.Line [Step] (x1, 1) [Step] (x2, y2), [color], [B][F]Line 方法的语法有以下对象限定符和部分:部分 描述 
    object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。 
    Step 可选的。关键字,指定起点坐标,它们相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置。 
    (x1, y1) 可选的。Single (单精度浮点数),直线或矩形的起点坐标。ScaleMode 属性决定了使用的度量单位。如果省略,线起始于由 CurrentX 和 CurrentY 指示的位置。 
    Step 可选的。关键字,指定相对于线的起点的终点坐标。  
    (x2, y2) 必需的。Single (单精度浮点数),直线或矩形的终点坐标。 
    color 可选的。Long (长整型数),画线时用的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。 
    B 可选的。如果包括,则利用对角坐标画出矩形。 
    F 可选的。如果使用了 B 选项,则 F 选项规定矩形以矩形边框的颜色填充。不能不用 B 而用 F。如果不用 F 光用 B,则矩形用当前的 FillColor 和 FillStyle 填充。FillStyle 的缺省值为 transparent。 
    说明画联结的线时,前一条线的终点就是后一条线的起点。线的宽度取决于 DrawWidth 属性值。在背景上画线和矩形的方法取决于 DrawMode 和 DrawStyle 属性值。执行 Line 方法时, CurrentX 和 CurrentY 属性被参数设置为终点。这个方法不能用于With...End With 语句块。
      

  2.   

    在VB6的MSDN中有一個例子,在屏幕上畫一個小間空心的小球,在背景上跑來跑去的,速度相當快,而且不閃,
    使用BITBLT API函數,它會用此函數先保存下小球下一個將要去的位置的背景圖到一個PICTUREBOX,然后再用此函數將小球的圖片畫在那個位置,再用一個蒙版把小球中間變成縷空的,再將保存好的圖像畫到此位置,然后取得小球下一個位置,重復這個動作
      

  3.   

    to lhfcsdn(不断努力ing)
    line 好象是画线函数啊.能画矩型吗?反正我是画不出来
      

  4.   

    to aalei(阿磊) ( ):
    //line 好象是画线函数啊.能画矩型吗?反正我是画不出来Line 方法示例
    这个示例用 Line 方法在窗体上画了几个同心矩形。要运行这个示例,将此代码放入窗体的 General 部分。按 F5 并单击窗体。Sub Form_Click ()
       Dim CX, CY, F, F1, F2, I   ' 声明变量。
       ScaleMode = 3   ' 设置 ScaleMode 为像素。
       CX = ScaleWidth / 2   ' 水平中点。
       CY = ScaleHeight / 2   ' 垂直中点。
       DrawWidth = 8   ' 设置 DrawWidth。
       For I = 50 To 0 Step -2
          F = I / 50   ' 执行中间步骤。
          F1 = 1 - F: F2 = 1 + F   ' 计算。
          Forecolor = QBColor(I Mod 15)   ' 设置前景颜色。
          Line (CX * F1, CY * F1)-(CX * F2, CY * F2), , BF
       Next I
       DoEvents   ' 做其它处理。
       If CY > CX Then   ' 设置 DrawWidth。
          DrawWidth = ScaleWidth / 25
       Else
          DrawWidth = ScaleHeight / 25
       End If
       For I = 0 To 50 Step 2   ' Set up loop.
          F = I / 50   ' 执行中间。
          F1 = 1 - F: F2 = 1 + F   ' 计算。
          Line (CX * F1, CY)-(CX, CY * F1)   ' 画左上角。
          Line -(CX * F2, CY)   ' 画右上角。
          Line -(CX, CY * F2)   ' 画右下角。
          Line -(CX * F1, CY)   ' 画左下角。
          Forecolor = QBColor(I Mod 15)   ' 每次改变颜色。
       Next I
       DoEvents   ' 进行其它处理。
    End Sub
      

  5.   

    Visual Basic 提供了一个更简单的画方框的方法。当在 Line 方法中使用 B 选项时,Visual Basic 把指定点作为矩形的对角点,可画出一个矩形。所以,可用下列语句,代替上例中的四个语句:Line (500, 500)–Step(1000, 1000), , B注意,在 B 之前要有两个逗点,以表示色彩参数被省略了。Line 方法的语法包括在本章稍前的“画各种直线和形状”一节中。
      

  6.   

    to  lhfcsdn(不断努力ing) 我是要画一个实心的矩形.不是空心的.....急啊..帮忙