乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 129|回复: 9

[VBA]用vba做的窗体如何才能cad的窗体切换激活?

[复制链接]

3

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
24
发表于 2004-4-23 23:51:00 | 显示全部楼层 |阅读模式
简单的说就是能像“特性”窗体那样能与cad窗体切换作为活动窗体,而无需关闭。比如某一窗体打开并运行时还能画图。
试了vbmodal,不行。
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-4-23 23:56:00 | 显示全部楼层
frm.Show 0
回复

使用道具 举报

3

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
24
发表于 2004-4-24 00:04:00 | 显示全部楼层
没这么简单,呵呵。
如果窗体无模式显示,当我想对窗体操作比如写数据时很困难,因为窗体得不到焦点。
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2004-4-24 13:43:00 | 显示全部楼层
做两个按钮让用户自己切换
Private Sub CommandButton1_Click()
Me.Hide
Me.Show 1
End Sub
Private Sub CommandButton2_Click()
Me.Hide
Me.Show 0
End Sub
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2004-4-27 22:31:00 | 显示全部楼层
可以利用鼠标的位置来确定是否切换显示模式,但要求鼠标的移动速度不能太快,以下是窗体的代码部分,试试看:
  1. Dim i As Boolean
  2. Private Sub CommandButton1_Click()
  3.        Me.Hide
  4. End Sub Private Sub UserForm_Initialize()
  5.        i = True
  6. End Sub
  7. Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  8. 'Debug.Print X & "," & Y
  9. If (X  Me.Width - 15 Or Y > Me.Height - 25) Then
  10.        If i = True Then
  11.                i = False
  12.                Me.StartUpPosition = 3
  13.                Me.Hide
  14.                Me.Show 0
  15.        End If
  16. Else
  17.        If i = False Then
  18.                i = True
  19.                Me.StartUpPosition = 3
  20.                Me.Hide
  21.                Me.Show 1
  22.        End If
  23. End If
  24. End Sub
回复

使用道具 举报

3

主题

12

帖子

1

银币

初来乍到

Rank: 1

铜币
24
发表于 2004-5-11 19:00:00 | 显示全部楼层
谢谢斑竹!!太感激了!
        
BTW:我觉得startupposition没有用的说
回复

使用道具 举报

2

主题

21

帖子

2

银币

初来乍到

Rank: 1

铜币
29
发表于 2004-5-12 09:26:00 | 显示全部楼层
AUTOCAD 自带一个AcFocusCtrl控件,只要将其放在窗体上.然后form.show 0就能实现无模式显示.不需要编程!~
回复

使用道具 举报

2

主题

21

帖子

2

银币

初来乍到

Rank: 1

铜币
29
发表于 2004-5-12 11:04:00 | 显示全部楼层
补充一点:当窗体无模式显示时,需要点击autocad一下才能进行画图等操作.我们可以利用api函数来实现.Declare Function SetFocusAPI& Lib "user32" Alias "SetFocus" (ByVal hwnd As Long)
回复

使用道具 举报

13

主题

396

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
448
发表于 2004-12-27 09:22:00 | 显示全部楼层

请问具体怎么操作啊。我对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)
SetFocusAPI ThisDrawing.hwnd
End Sub
回复

使用道具 举报

34

主题

372

帖子

7

银币

中流砥柱

Rank: 25

铜币
508
发表于 2005-1-3 20:23:00 | 显示全部楼层
使用AcFocusCtrl控件有时会导致AutoCAD异常退出…
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-16 18:49 , Processed in 1.127843 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表