Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.Runtime
Imports System.Drawing
Imports System.Windows.Forms
Namespace GetAttention
Public Class HelpForm
Inherits Form
'边框宽度百分比
Const bdrPrc As Integer = 20
Const msg As String = "救命!help!"
Public Sub New()
TopMost = True
ShowInTaskbar = False
FormBorderStyle = Windows.Forms.FormBorderStyle.None
BackColor = Color.Plum
TransparencyKey = Color.Plum
Width = Screen.PrimaryScreen.Bounds.Width
Height = Screen.PrimaryScreen.Bounds.Height
AddHandler Paint, New PaintEventHandler(AddressOf HelpForm_Paint)
End Sub
Private Sub HelpForm_Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
'以像素为单位计算的实际边界大小
Dim bdrWid As Integer = Height * bdrPrc \ 100
'边框将显示在整个屏幕周围
Dim border As New Rectangle(0, 0, Width, Height)
'绘制边框
e.Graphics.DrawRectangle(New Pen(Brushes.Red, bdrWid), border)
'文本绘制在边框正中
Dim f As System.Drawing.Font = New Font("黑体", bdrWid)
Dim sz As SizeF = e.Graphics.MeasureString(msg, f)
Dim wid As Integer = CInt(Math.Truncate(sz.Width))
Dim hgt As Integer = CInt(Math.Truncate(sz.Height))
Dim rect As New Rectangle((Width - wid) \ 2, (Height - hgt) \ 2, CInt(Math.Truncate(wid * 1.2)), hgt)
e.Graphics.DrawString(msg, f, Brushes.Red, rect)
End Sub
End Class
Public Class Commands
Private _form As HelpForm = Nothing
Private _timer As Timer = Nothing
Private _times As Integer = 0
Private Sub Timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
If System.Math.Max(System.Threading.Interlocked.Increment(_times), _times - 1) >= 10 Then
_form.Hide()
_form.Dispose()
_form = Nothing
_timer.Stop()
_timer.Dispose()
_timer = Nothing
_times = 0
Else
If _form.Visible Then
_form.Hide()
Else
_form.Show()
End If
End If
End Sub
<CommandMethod("HELPME")> _
Public Sub RequestHelp()
'创建窗体
_form = New HelpForm()
_form.Show()
'开始按秒计时
_timer = New Timer()
_timer.Interval = 10000
_timer.Enabled = True
AddHandler _timer.Tick, New EventHandler(AddressOf Timer_Tick)
End Sub
End Class
End Namespace
Imports Autodesk.AutoCAD.Runtime
Imports System.Drawing
Imports System.Windows.Forms
Namespace GetAttention
Public Class HelpForm
Inherits Form
'边框宽度百分比
Const bdrPrc As Integer = 20
Const msg As String = "救命!help!"
Public Sub New()
TopMost = True
ShowInTaskbar = False
FormBorderStyle = Windows.Forms.FormBorderStyle.None
BackColor = Color.Plum
TransparencyKey = Color.Plum
Width = Screen.PrimaryScreen.Bounds.Width
Height = Screen.PrimaryScreen.Bounds.Height
AddHandler Paint, New PaintEventHandler(AddressOf HelpForm_Paint)
End Sub
Private Sub HelpForm_Paint(ByVal sender As Object, ByVal e As PaintEventArgs)
'以像素为单位计算的实际边界大小
Dim bdrWid As Integer = Height * bdrPrc \ 100
'边框将显示在整个屏幕周围
Dim border As New Rectangle(0, 0, Width, Height)
'绘制边框
e.Graphics.DrawRectangle(New Pen(Brushes.Red, bdrWid), border)
'文本绘制在边框正中
Dim f As System.Drawing.Font = New Font("黑体", bdrWid)
Dim sz As SizeF = e.Graphics.MeasureString(msg, f)
Dim wid As Integer = CInt(Math.Truncate(sz.Width))
Dim hgt As Integer = CInt(Math.Truncate(sz.Height))
Dim rect As New Rectangle((Width - wid) \ 2, (Height - hgt) \ 2, CInt(Math.Truncate(wid * 1.2)), hgt)
e.Graphics.DrawString(msg, f, Brushes.Red, rect)
End Sub
End Class
Public Class Commands
Private _form As HelpForm = Nothing
Private _timer As Timer = Nothing
Private _times As Integer = 0
Private Sub Timer_Tick(ByVal sender As Object, ByVal e As EventArgs)
If System.Math.Max(System.Threading.Interlocked.Increment(_times), _times - 1) >= 10 Then
_form.Hide()
_form.Dispose()
_form = Nothing
_timer.Stop()
_timer.Dispose()
_timer = Nothing
_times = 0
Else
If _form.Visible Then
_form.Hide()
Else
_form.Show()
End If
End If
End Sub
<CommandMethod("HELPME")> _
Public Sub RequestHelp()
'创建窗体
_form = New HelpForm()
_form.Show()
'开始按秒计时
_timer = New Timer()
_timer.Interval = 10000
_timer.Enabled = True
AddHandler _timer.Tick, New EventHandler(AddressOf Timer_Tick)
End Sub
End Class
End Namespace
【kh0n_AutoCAD命令打印图形到屏幕.rar】点击下载此文件
[本日志由 tiancao1001 于 2014-09-29 08:59 PM 编辑]
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |