[VBA]用vba做的窗体如何才能cad的窗体切换激活?
简单的说就是能像“特性”窗体那样能与cad窗体切换作为活动窗体,而无需关闭。比如某一窗体打开并运行时还能画图。试了vbmodal,不行。 frm.Show 0<BR> 没这么简单,呵呵。
如果窗体无模式显示,当我想对窗体操作比如写数据时很困难,因为窗体得不到焦点。 做两个按钮让用户自己切换
Private Sub CommandButton1_Click()<BR>Me.Hide<BR>Me.Show 1<BR>End Sub<BR>Private Sub CommandButton2_Click()<BR>Me.Hide<BR>Me.Show 0<BR>End Sub<BR> 可以利用鼠标的位置来确定是否切换显示模式,但要求鼠标的移动速度不能太快,以下是窗体的代码部分,试试看:Dim i As Boolean
Private Sub CommandButton1_Click()
Me.Hide
End Sub Private Sub UserForm_Initialize()
i = True
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Debug.Print X & "," & Y
If (X < 5 Or Y < 5 Or X > Me.Width - 15 Or Y > Me.Height - 25) Then
If i = True Then
i = False
Me.StartUpPosition = 3
Me.Hide
Me.Show 0
End If
Else
If i = False Then
i = True
Me.StartUpPosition = 3
Me.Hide
Me.Show 1
End If
End If
End Sub 谢谢斑竹!!太感激了!
BTW:我觉得startupposition没有用的说 AUTOCAD 自带一个AcFocusCtrl控件,只要将其放在窗体上.然后form.show 0就能实现无模式显示.不需要编程!~ 补充一点:当窗体无模式显示时,需要点击autocad一下才能进行画图等操作.我们可以利用api函数来实现.Declare Function SetFocusAPI& Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) 本帖最后由 作者 于 2004-12-27 9:52:44 编辑 <br /><br /> czbming发表于2004-5-12 11:04:00static/image/common/back.gif补充一点:当窗体无模式显示时,需要点击autocad一下才能进行画图等操作.我们可以利用api函数来实现.Declare Function SetFocusAPI& Lib \"user32\" Alias \"SetF...
<BR>请问具体怎么操作啊。我对api不熟。
我已经试出来了:
在模块下加入:
Declare Function SetFocusAPI& Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)
在窗体的MouseMove事件下加入:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)<BR>SetFocusAPI ThisDrawing.hwnd<BR>End Sub
<BR> 使用AcFocusCtrl控件有时会导致AutoCAD异常退出…
页:
[1]
2