Public Class Form1
Inherits System.Windows.Forms.Form
Public imagepen, newbit, changiamge, mpen 'movepen,moveb,,grh,filenames,endpen
Dim xd, yd, xu, yu, pk, ps
Private Sub MenuItem9_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem9.Click
'新建一个ico文件,即"新建"菜单
PictureBox1.Image = Nothing
Dim bitnew As New System.Drawing.Bitmap(32, 32,
Drawing.Imaging.PixelFormat.Format32bppArgb)'建立一个Bitmap对象,以便在它上面画图
Dim x, y
For x = 0 To 31
For y = 0 To 31
bitnew.SetPixel(x, y, Color.Transparent)'将Bitmap的背景设置为透明
Next
Next
newbit = bitnew
MenuItem3.Enabled = False'"选择颜色"菜单不可用
MenuItem2.Enabled = True'"直线"菜单可用
End Sub
Private Sub MenuItem6_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem6.Click
'打开图片文件即"打开"菜单"
OpenFileDialog1.Filter = "ico文件(*.ico)|*.ico|图像文件
(*.BMP;*.JPG;*.jpeg;*.GIF;*.png;*.tiff)|*.BMP;*.JPG;*.jpeg;*.GIF;*.png;*.tiff"
OpenFileDialog1.FilterIndex = 2
OpenFileDialog1.ShowDialog()
OpenFileDialog1.FileName = ""
End Sub
Private Sub MenuItem8_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem8.Click
Me.Close()'退出
End Sub
Private Sub MenuItem7_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem7.Click
'保存文件,即"保存"对话筐
PictureBox1.Cursor = System.Windows.Forms.Cursors.Default
SaveFileDialog1.Filter = "ico文件(*.ico)|*.ico"'设置要保存的文件后缀
SaveFileDialog1.ShowDialog()
If SaveFileDialog1.FileName <> "" Then
If Not SaveFileDialog1.ShowDialog.Cancel Then
Dim bmp As New System.Drawing.Bitmap(PictureBox1.Image,
32,32)'从PictureBox1.Image初始化Bitmap,设置保存为图片的大小,标准ico图由
32*32和16*16两种格式组成,此处为32*32,你也可以设置为16*16
Dim ico As System.Drawing.Icon =
ico.FromHandle(bmp.GetHicon())'用Bitmap的句柄,初始化icon,他是专门处理ico文件的类
Dim file As New System.IO.FileStream(SaveFileDialog1.FileName(),
IO.FileMode.Create)'创建文件流
ico.Save(file)'保存为ico文件
file.Close()'关闭流
End If
End If
End Sub
Public Sub MenuItem2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem2.Click
'是用直线在新建的ico中画图
PictureBox1.Cursor =
System.Windows.Forms.Cursors.Cross'在PictureBox1中鼠标的样式
ColorDialog1.ShowDialog()
Dim pen As New Pen(ColorDialog1.Color, DomainUpDown1.Text())'创建画笔
imagepen = pen
End Sub
Private Sub PictureBox1_MouseDown(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
'当按下鼠标左键时获取直线的起点
If e.Button = MouseButtons.Left Then
xd = e.X / 8 : yd = e.Y / 8
End If
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
'画出直线
If PictureBox1.Cursor Is System.Windows.Forms.Cursors.Cross And ps <> 1 Then
xu = e.X : yu = e.Y
Me.k(1, imagepen, yu / 8, xu / 8, xd, yd)
Else
If OpenFileDialog1.FilterIndex = 1 Then
xu = e.X : yu = e.Y
Me.k(2, mpen, yu / 8, xu / 8, xd, yd)
End If
End If
End Sub
Public Sub k(ByVal k As Integer, ByVal drawtool As Object,
ByVal x As Integer, ByVal y As Integer, ByVal xs As Integer,
ByVal ys As Integer)
If k = 1 Then
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage'自动容纳图片
PictureBox1.Image = newbit
Dim Graphic As Graphics
Graphic = Graphic.FromImage(Me.PictureBox1.Image)'在PictureBox1上画图
Graphic.SmoothingMode = Drawing.Drawing2D.SmoothingMode.AntiAlias'锯齿削边
Graphic.DrawLine(drawtool, y, x, xs, ys)'画线
End If
If k = 2 Then
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
PictureBox1.Image = changiamge
Dim Graphic As Graphics
Graphic = Graphic.FromImage(Me.PictureBox1.Image)
Graphic.SmoothingMode = Drawing.Drawing2D.SmoothingMode.AntiAlias
Graphic.DrawLine(drawtool, y, x, xs, ys)
End If
End Sub
Private Sub MenuItem3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem3.Click
'对打开的ico文件用直线画图
ColorDialog1.ShowDialog()
Dim m3pen As New Pen(ColorDialog1.Color, DomainUpDown1.Text())'建立画笔
mpen = m3pen
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
'打开文件
If OpenFileDialog1.FilterIndex = 1 Then
Dim m3pen As New Pen(Color.Black, DomainUpDown1.Text())
mpen = m3pen
MenuItem2.Enabled = False
MenuItem3.Enabled = True
Else
MenuItem3.Enabled = False
MenuItem2.Enabled = False
End If
If OpenFileDialog1.FileName <> "" Then
PictureBox1.Cursor = System.Windows.Forms.Cursors.Default
Dim images As New System.Drawing.Bitmap(OpenFileDialog1.FileName)
changiamge = images
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
PictureBox1.Image = images
Me.Text = OpenFileDialog1.FileName
End If
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'由于刚运行次程序时,没有打开的ico文件和新建立的ico对象所以不可以创建画图工具对象
MenuItem3.Enabled = False
MenuItem2.Enabled = False
End Sub
End Class
Inherits System.Windows.Forms.Form
Public imagepen, newbit, changiamge, mpen 'movepen,moveb,,grh,filenames,endpen
Dim xd, yd, xu, yu, pk, ps
Private Sub MenuItem9_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem9.Click
'新建一个ico文件,即"新建"菜单
PictureBox1.Image = Nothing
Dim bitnew As New System.Drawing.Bitmap(32, 32,
Drawing.Imaging.PixelFormat.Format32bppArgb)'建立一个Bitmap对象,以便在它上面画图
Dim x, y
For x = 0 To 31
For y = 0 To 31
bitnew.SetPixel(x, y, Color.Transparent)'将Bitmap的背景设置为透明
Next
Next
newbit = bitnew
MenuItem3.Enabled = False'"选择颜色"菜单不可用
MenuItem2.Enabled = True'"直线"菜单可用
End Sub
Private Sub MenuItem6_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem6.Click
'打开图片文件即"打开"菜单"
OpenFileDialog1.Filter = "ico文件(*.ico)|*.ico|图像文件
(*.BMP;*.JPG;*.jpeg;*.GIF;*.png;*.tiff)|*.BMP;*.JPG;*.jpeg;*.GIF;*.png;*.tiff"
OpenFileDialog1.FilterIndex = 2
OpenFileDialog1.ShowDialog()
OpenFileDialog1.FileName = ""
End Sub
Private Sub MenuItem8_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem8.Click
Me.Close()'退出
End Sub
Private Sub MenuItem7_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem7.Click
'保存文件,即"保存"对话筐
PictureBox1.Cursor = System.Windows.Forms.Cursors.Default
SaveFileDialog1.Filter = "ico文件(*.ico)|*.ico"'设置要保存的文件后缀
SaveFileDialog1.ShowDialog()
If SaveFileDialog1.FileName <> "" Then
If Not SaveFileDialog1.ShowDialog.Cancel Then
Dim bmp As New System.Drawing.Bitmap(PictureBox1.Image,
32,32)'从PictureBox1.Image初始化Bitmap,设置保存为图片的大小,标准ico图由
32*32和16*16两种格式组成,此处为32*32,你也可以设置为16*16
Dim ico As System.Drawing.Icon =
ico.FromHandle(bmp.GetHicon())'用Bitmap的句柄,初始化icon,他是专门处理ico文件的类
Dim file As New System.IO.FileStream(SaveFileDialog1.FileName(),
IO.FileMode.Create)'创建文件流
ico.Save(file)'保存为ico文件
file.Close()'关闭流
End If
End If
End Sub
Public Sub MenuItem2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem2.Click
'是用直线在新建的ico中画图
PictureBox1.Cursor =
System.Windows.Forms.Cursors.Cross'在PictureBox1中鼠标的样式
ColorDialog1.ShowDialog()
Dim pen As New Pen(ColorDialog1.Color, DomainUpDown1.Text())'创建画笔
imagepen = pen
End Sub
Private Sub PictureBox1_MouseDown(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
'当按下鼠标左键时获取直线的起点
If e.Button = MouseButtons.Left Then
xd = e.X / 8 : yd = e.Y / 8
End If
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
'画出直线
If PictureBox1.Cursor Is System.Windows.Forms.Cursors.Cross And ps <> 1 Then
xu = e.X : yu = e.Y
Me.k(1, imagepen, yu / 8, xu / 8, xd, yd)
Else
If OpenFileDialog1.FilterIndex = 1 Then
xu = e.X : yu = e.Y
Me.k(2, mpen, yu / 8, xu / 8, xd, yd)
End If
End If
End Sub
Public Sub k(ByVal k As Integer, ByVal drawtool As Object,
ByVal x As Integer, ByVal y As Integer, ByVal xs As Integer,
ByVal ys As Integer)
If k = 1 Then
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage'自动容纳图片
PictureBox1.Image = newbit
Dim Graphic As Graphics
Graphic = Graphic.FromImage(Me.PictureBox1.Image)'在PictureBox1上画图
Graphic.SmoothingMode = Drawing.Drawing2D.SmoothingMode.AntiAlias'锯齿削边
Graphic.DrawLine(drawtool, y, x, xs, ys)'画线
End If
If k = 2 Then
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
PictureBox1.Image = changiamge
Dim Graphic As Graphics
Graphic = Graphic.FromImage(Me.PictureBox1.Image)
Graphic.SmoothingMode = Drawing.Drawing2D.SmoothingMode.AntiAlias
Graphic.DrawLine(drawtool, y, x, xs, ys)
End If
End Sub
Private Sub MenuItem3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MenuItem3.Click
'对打开的ico文件用直线画图
ColorDialog1.ShowDialog()
Dim m3pen As New Pen(ColorDialog1.Color, DomainUpDown1.Text())'建立画笔
mpen = m3pen
End Sub
Private Sub OpenFileDialog1_FileOk(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
'打开文件
If OpenFileDialog1.FilterIndex = 1 Then
Dim m3pen As New Pen(Color.Black, DomainUpDown1.Text())
mpen = m3pen
MenuItem2.Enabled = False
MenuItem3.Enabled = True
Else
MenuItem3.Enabled = False
MenuItem2.Enabled = False
End If
If OpenFileDialog1.FileName <> "" Then
PictureBox1.Cursor = System.Windows.Forms.Cursors.Default
Dim images As New System.Drawing.Bitmap(OpenFileDialog1.FileName)
changiamge = images
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
PictureBox1.Image = images
Me.Text = OpenFileDialog1.FileName
End If
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles MyBase.Load
'由于刚运行次程序时,没有打开的ico文件和新建立的ico对象所以不可以创建画图工具对象
MenuItem3.Enabled = False
MenuItem2.Enabled = False
End Sub
End Class
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货