1.VB控件安装后是可以在VC中使用
2.什么叫固定区域,用一个PICTURE不就是固定的区域么
me.DrawMode     画笔类型
me.DrawWidth    宽度me.line (100,100)-(500,500),bf,gColor
3.SAVEPICTURE函数

解决方案 »

  1.   

    2、PSet,Line,Circle
    3、SavePicture
      

  2.   

    固定区域就是指窗口中指定的区域呀。
    谢谢以上两位朋友的解答。
    我是VB新手,所以还请各位老大帮助一下。在此之前,我从未使用过VB,只用过VC、PB、ASP等其它东东,谢谢啦先。
    可以给出一段示例代码吗?比如,画一根线,点击某个按钮后,将其存储为一个bmp文件(没有必要仅保存这个线,保存这个区域就可以了)。
      

  3.   

    可能用第三方控件比较好吧,这个画图保存的操作感觉还不好做。强烈关注。有好的方法告诉我一声。。THNAK   [email protected]
      

  4.   

    添加一个picutrebox,叫做picturebox1
    设置picture1的autoredraw为trueprivate sub command1_click(...)
        savepicture picture1.picture, "c:\a.bmp"
    end sub
      

  5.   

    TO :jennyvenus(JennyVenus) :  谢谢。
      我想在picturebox1上面进行绘图,该如何做呢?给个例子好吗?
      

  6.   

    1 用VB做了一个OCX控件,有其自己的一些方法、属性与事件。安装后,可以
    可以
    2 在VB中,如何在屏幕(指应用程序的窗口,就是Form啦)上的固定区域内进行图形的绘制?无非就是些线啦、点啦什么的,要求线有宽度有颜色。我有例子给你[email protected]
    或者到www.ourfly.com下载vb操作图形的例子3 接第二问题,可以把这个区域中图形(16色而已)存储成一幅位图(BMP格式)吗?有没有什么简便的办法?
    可以
      

  7.   


    PSet 方法
          将对象上的点设置为指定颜色。语法object.PSet [Step] (x, y), [color]PSet 方法的语法有如下对象限定符和部分:部分 描述 
    object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。 
    Step 可选的。关键字,指定相对于由 CurrentX 和 CurrentY 属性提供的当前图形位置的坐标。 
    (x, y) 必需的。 Single (单精度浮点数),被设置点的水平( x 轴)和垂直( y 轴)坐标。 
    color 可选的。Long (长整型数),为该点指定的 RGB 颜色。如果它被省略,则使用当前的 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。 
    说明所画点的尺寸取决于 DrawWidth 属性值。当 DrawWidth 为 1,PSet 将一个像素的点设置为指定颜色。当 DrawWidth 大于 1,则点的中心位于指定坐标。画点的方法取决于 DrawMode 和 DrawStyle 属性值。执行 PSet 时,CurrentX 和 CurrentY 属性被设置为参数指定的点。想用 PSet 方法清除单一像素,规定该像素的坐标,并用 BackColor 属性设置作为 color 参数。这个方法不能用在 With匛nd With 语句块中。PSet 方法示例
    这个示例用 PSet 方法在窗体上画五彩碎纸。想运行这个示例,将代码放入窗体的General 部分。按 F5 并单击窗体。Sub Form_Click ()
       Dim CX, CY, Msg, XPos, YPos   ' Declare variables.
       ScaleMode = 3   ' 设置 ScaleMode 为像素。
       DrawWidth = 5   ' 设置 DrawWidth.
       ForeColor = QBColor(4)   ' 设置前景为红色。
       FontSize = 24   ' 设置点的大小。
       CX = ScaleWidth / 2   ' 得到水平中点。
       CY = ScaleHeight / 2   ' 得到垂直中点。
       Cls   ' 清窗体。
       Msg = "Happy New Year!"
       CurrentX = CX - TextWidth(Msg) / 2   ' 水平位置。
       CurrentY = CY - TextHeight(Msg)   ' 垂直位置。
       Print Msg   ' 打印消息。
       Do
          XPos = Rnd * ScaleWidth   ' 得到水平位置。
          YPos = Rnd * ScaleHeight   ' 得到垂直位置。
          PSet (XPos, YPos), QBColor(Rnd * 15)   ' 画五彩碎纸。
          DoEvents   ' 进行
       Loop   ' 其它处理。
    End Sub
     
    Point 方法
          按照长整数,返回在 Form 或 PictureBox 上所指定磅的红-绿-蓝 (RGB) 颜色。不支持命名参数。语法object.Point(x, y)Point 方法的语法包含下列部分:部分 描述 
    object 可选的。一个对象表达式,其值为“应用于”列表中的一个对象。如果省略 object,带有焦点的 Form 象缺省为 object. 
    x, y 必需的。均为单精度值,指示 Form 或 PictureBox 的 ScaleMode 属性中该点的水平(x-轴)和垂直(y-轴)坐标。必须用括号包括这些值。 
    说明如果由 x 和 y 坐标所引用的点位于 object 之外,Point 方法将返回 -1。Point 方法示例
    本示例使用 Point 方法来确定一个窗体上的一个指定点的颜色。要检验此示例,可将本例代码粘贴到一个窗体的声明部分,然后按 F5 键并单击该窗体。Private Sub Form_Click ()
       Dim LeftColor, MidColor, Msg, RightColor   ' 声明变量。
       AutoRedraw = -1   ' 打开AutoRedraw。
       Height = 3 * 1440   ' 将高度设置为 3 英寸。
       Width = 5 * 1440   ' 将宽度设置为 5 英寸。
       BackColor = QBColor(1)   ' 将背景设置为蓝色。
       ForeColor = QBColor(4)   ' 将前景设置为红色。
       Line (0, 0)-(Width / 3, Height), , BF   ' 红框。
       ForeColor = QBColor(15)   ' 将前景设置为白色。
       Line (Width / 3, 0)-((Width / 3) * 2, Height), , BF
       LeftColor = Point(0, 0)   ' 查找左框颜色,,
       MidColor = Point(Width / 2, Height / 2)   ' 中框, 和
       RightColor = Point(Width, Height)   ' 右框。
       Msg = "The color number for the red box on the left side of "
       Msg = Msg & "the form is " & LeftColor & ". The "
       Msg = Msg & "color of the white box in the center is "
       Msg = Msg & MidColor & ". The color of the blue "
       Msg = Msg & "box on the right is " & RightColor & "."
       MsgBox Msg   ' 显示信息。
    End Sub
      

  8.   


    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 语句块。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 
    Circle 方法
          在对象上画圆、椭圆或弧。语法object.Circle [Step] (x, y), radius, [color, start, end, aspect]Circle 方法的语法有如下的对象限定符和部分:部分 描述 
    object 可选的。 对象表达式,其值为“应用于”列表中的对象。如果object 省略,具有焦点的窗体作为object。 
    Step 可选的。关键字 ,指定圆、椭圆或弧的中心,它们相对于当前 object 的 CurrentX 和 CurrentY 属性提供的坐标。 
    (x, y) 必需的。 Single (单精度浮点数),圆、椭圆或弧的中心坐标。object 的 ScaleMode 属性决定了使用的度量单位。 
    radius 必需的。Single (单精度浮点数),圆、椭圆或弧的半径。 object 的 ScaleMode 属性决定了使用的度量单位。 
    color 可选的。Long (长整型数),圆的轮廓的 RGB 颜色。如果它被省略,则使用 ForeColor 属性值。可用 RGB 函数或 QBColor 函数指定颜色。 
    start, end 可选的。 Single (单精度浮点数),当弧、或部分圆或椭圆画完以后,start 和 end 指定(以弧度为单位)弧的起点和终点位置。其范围从 -2 pi 到 2 pi 。起点的缺省值是0; 终点的缺省值是2 * pi。 
    aspect 可选的。 Single (单精度浮点数),圆的纵横尺寸比。缺省值为 1.0,它在如何屏幕上都产生一个标准圆(非椭圆)。 
    说明想要填充圆,使用圆或椭圆所属对象的 FillColor 和 FillStyle 属性。只有封闭的图形才能填充。封闭图形包括圆、椭圆、或扇形。画部分圆或椭圆时,如果 start 为负,Circle 画一半径到 start,并将角度处理为正的;如果 end 为负,Circle 画一半径到 end,并将角度处理为正的。Circle 方法总是逆时针(正)方向绘图。画圆、椭圆或弧时线段的粗细取决于 DrawWidth 属性值。在背景上画圆的方法取决于 DrawMode 和 DrawStyle 属性值。画角度为 0 的扇形时,要画出一条半径(向右画一水平线段),这时给 start 规定一很小的负值,不要给 0。.可以省略语法中间的某个参数,但不能省略分隔参数的逗号。您指定的最后一个参数后面的逗号是可以省略的。Circle 执行时,CurrentX 和 CurrentY 属性被参数设置为中心点。这个方法不能用在 With匛nd With 语句块中。Circle 方法示例
    这个示例用Circle 方法在窗体中央画许多同心圆。要运行这个示例,将此代码放入窗体的 General 部分。按 F5 并单击窗体。Sub Form_Click ()
       Dim CX, CY, Radius, Limit   ' Declare variable.
       ScaleMode = 3   ' 以像素为单位。
       CX = ScaleWidth / 2   ' X 位置。
       CY = ScaleHeight / 2   ' Y 位置。
       If CX > CY Then Limit = CY Else Limit = CX
       For Radius = 0 To Limit   ' 半径。
          Circle (CX, CY), Radius,RGB(Rnd * 255, Rnd * 255, Rnd * 255)
       Next Radius
    End Sub
      

  9.   


    BackColor、ForeColor 属性
          BackColor-返回或设置对象的背景颜色。
    ForeColor-返回或设置在对象里显示图片和文本的前景颜色。 
    语法object.BackColor [= color]object.ForeColor [= color]BackColor 和 ForeColor 属性语法包含下面部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的一个对象。 
    color 值或常数,确定对象前景或背景的颜色,“设置值”中有详细说明。 
    设置值Visual Basic 用 Microsoft Windows 运行环境的红-绿-蓝 (RGB) 颜色方案。color 的设置值如下:设置值 描述 
    标准 RGB 颜色 使用调色板或在代码中使用 RGB 或 QBColor 函数指定的颜色。 
    系统缺省颜色 由对象浏览器中的 Visual Basic (VB) 对象库所列的系统颜色常数指定的颜色。Windows 运行环境替换使用用户在控制面板设置值中的选择。 
    对所有的窗体和控件,在设计时的缺省设置值如下: BackColor-设置为由常数 vbWindowBackground 定义的系统缺省颜色。
    ForeColor-设置为由常数 vbWindowText 定义的系统缺省颜色。 
    说明在 Label 和 Shape,控件中,如果 BackStyle 属性的设置值为 0(透明),则忽略 BackColor 属性。如果在 Form 对象或 Picturebox 控件中设置 BackColor 属性,则所有的文本和图片,包括指定的图片,都被擦除。设置 ForeColor 属性值不会影响已经绘出的图片或打印输出。在其它的所有控件中,屏幕的颜色会立即改变。标准 RGB 颜色的有效取值范围是 0 到 16,777,215 (&HFFFFFF)。该范围内数的高字节为 0;较低的 3 个字节,从最低字节到最高字节依次决定红、绿和蓝的量。红、绿和蓝的成分,分别由一个介于 0 与 255 (&HFF) 之间的数来表示。如果最高字节不为 0,Visual Basic 将使用系统颜色,这些颜色由用户的控制面板设置值和由对象浏览器中的 Visual Basic (VB) 对象库所列出的常数来确定。在 Windows 运行环境中显示文本,文本和背景的颜色必须都是原色。如果所选择的文本或背景颜色没有显示出来,则选择颜色中可能有抖动色-也就是说,最多由三种不同颜色的像素组成的颜色。如果对文本或背景选择了抖动色,则会用最接近的原色来代替。
     
    FillColor 属性
          返回或设置用于填充形状的颜色:FillColor 也可以用来填充由 Circle 和 Line 图形方法生成的圆和方框。语法object.FillColor [ = value]FillColor 属性语法包含下面部分:部分 描述 
    Object 对象表达式,其值是“应用于”列表中的一个对象。 
    Value 值或常数,确定填充颜色,“设置值”中有详细描述。 
    设置值value 的设置值如下:设置值 描述 
    标准 RGB 颜色 在程序中提供 RGB 或 QBColor 函数的颜色集 
    系统缺省颜色 “对象浏览器” 中的 Visual Basic (VB) 对象库的系统颜色常数常数指定的颜色。Microsoft Windows 运行环境替换用户在控制面板设置中的选择。 
    缺省情况下,FillColor 设置为 0(黑色)。说明除 Form 对象之外,如果 FillStyle 属性设置为缺省值,1(透明),则忽略 FillColor 设置值。 
    DrawWidth 属性
          返回或设置图形方法输出的线宽。语法object.DrawWidth [= size]DrawWidth 属性语法具有下列组成部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的一个对象。 
    size 数值表达式,其范围从 1 到 32,767。该值以像素为单位表示线宽。缺省值为 1,即,一个像素宽。 
    说明增大该属性值会增加线的宽度。如果 DrawWidth 属性值大于 1,DrawStyle 属性值设置为 1 到 4 时会画出一条实线来(DrawStyle 属性值不会改变)。将 DrawWidth 设置为 1,允许 DrawStyle 产生 DrawStyle 属性表中列出的结果。 
    DrawStyle 属性
          返回或设置一个值,以决定图形方法输出的线型的样式。语法object.DrawStyle [= number]DrawStyle 属性语法包含下面部分:部分 描述 
    Object 对象表达式,其值是“应用于”列表中的一个对象。 
    Number 整数,指定线型,“设置值”中有详细描述。 
    设置值number 的设置值为:常数 设置值 描述 
    VbSolid 0 (缺省值)实线 
    VbDash 1 虚线 
    VbDot 2 点线 
    VbDashDot 3 点划线 
    VbDashDotDot 4 双点划线 
    VbInvisible 5 无线 
    VbInsideSolid 6 内收实线 
    说明 若 DrawWidth 属性设置为大于 1, DrawStyle 属性设置值为 1 到 4 会画一条实线( DrawStyle 属性值不改变)。若 DrawWidth 设置为 1, DrawStyle 产生的效果如前面表中的各设置值所述。
     
    DrawMode 属性
          返回或设置一个值,以决定图形方法的输出外观或者 Shape 及 Line 控件的外观。语法object.DrawMode [= number]DrawMode 属性语法包含下面部分:部分 描述 
    object 对象表达式,其值是“应用于”列表中的一个对象。 
    Number 整型值,指定外观,“设置值”中有详细描述。 
    设置值number 的设置值为:常数 设置值 描述 
    VbBlackness 1 黑色。 
    VbNotMergePen 2 非或笔 - 与设置值 15 相反 (Merge Pen)。 
    VbMaskNotPen 3 与非笔 - 背景色以及画笔反相二者共有颜色的组合。 
    VbNotCopyPen 4 非复制笔 - 设置值 13 (Copy Pen) 的反相 
    VbMaskPenNot 5 与笔非 - 画笔以及显示反相二者共有颜色的组合。 
    VbInvert 6 反转 - 显示颜色的反相 
    VbXorPen 7 异或笔 - 画笔的颜色以及显示颜色的组合,只取其一。 
    VbNotMaskPen 8 非与笔 - 设置值 9 (Mask Pen) 的反相。 
    VbMaskPen 9 与笔 - 画笔和显示二者共有颜色的组合。 
    VbNotXorPen 10 非异或笔 - 方式 7 的反相 (Xor Pen)。  
    VbNop 11 无操作 - 输出保持不变。该设置实际上关闭画图。 
    VbMergeNotPen 12 或非笔 - 显示颜色与画笔颜色反相的组合。 
    VbCopyPen 13 复制笔(缺省值) - 由 ForeColor 属性指定的颜色。 
    VbMergePenNot 14 或笔非 - 画笔颜色与显示颜色的反相的组合。 
    VbMergePen 15 或笔 - 画笔颜色与显示颜色的组合。 
    VbWhiteness 16 白色。 
    说明当用 Shape 或 Line 控件,或者用图形方法画图时,使用这个属性产生可视效果。Visual Basic 将绘图模式的每一个像素与现存背景色中相应的像素做比较,然后进行逐位比较操作。例如,设置值 7(异或笔)用 Xor 操作符将绘图模式像素和背景像素组合起来。DrawMode 设置值的真正效果,取决于运行时所画线的颜色与屏幕已存在颜色的合成。对于设置值 1,6,7,11,13 和 16 可以最可靠地预知该属性的输出结果。