如何激活指定窗口。

ning1958 2010-05-30 10:31:41
问题提出:点击按钮后,图形不出来,必须要用鼠标点击这个CAD窗口后,CAD图形才出来.
分析:CAD这个窗口没有激活.
窗口句柄获得方法 oHand = oCad.AcadApi
请问:各位大侠的问题是:不用鼠标---激活这个CAD程序.

在fomr运行cad程序如下.
Function AcadApi()
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application.16")
If Err Then
Err.Clear
Set AcadApp = CreateObject("AutoCAD.Application.16")
End If
AcadApp.Visible = True
Dim objEntity As Object
lHwnd = GetParent(GetParent(AcadApp.ActiveDocument.hwnd))
If lHwnd = 0 Then Exit Function
lState = AcadApp.WindowState
AcadApp.WindowState = 1 '设置ACAD的窗口状态为默认,用于保存窗口位置。
GetWindowRect lHwnd, r
SetParent lHwnd, Form1.hwnd
Form1.ScaleMode = vbPixels '将VB窗体默认的缇单位改为以像素为单位。
SetWindowPos lHwnd, 0, 245, 0, 770, 700, 0
AcadApi = lHwnd
End Function


...全文
344 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alco2007 2010-05-30
  • 打赏
  • 举报
回复
SetWindowPos
ning1958 2010-05-30
  • 打赏
  • 举报
回复
好像没说清楚.在网上又找了一下.
标题重新定义,目标需求再表述一遍,看各位大侠是否能理解.

已知窗口句柄------通过窗口句柄-------激活指定句柄的窗口为当前活动窗口.
谢谢.
ning1958 2010-05-30
  • 打赏
  • 举报
回复
试了以下程序如何组合后,没成功.

在窗体的Load事件中加入下面的代码:
Private Sub Form_Load()
Dim erg As Long
注释:让windows知道你想要的热键。
erg& = SendMessage(Me.hwnd, WM_SETHOTKEY,HK_ALTZ, 0)
注释:检查函数是否执行成功
If erg& <> 1 Then
MsgBox "You need another hotkey", vbOKOnly,"Error"
End If
注释:告诉windows热键按下后做什么--显示窗口
erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW,0, 0)

End Sub
ning1958 2010-05-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bcrun 的回复:]
我看你的代码中好像有把AUTOCAD的窗口作为你的Form1的子窗口,是吧.
没看到你有写单独激活CAD窗口的语句啊.
[/Quote]
这是网上找的一个程序,似懂非懂.
bcrun 2010-05-30
  • 打赏
  • 举报
回复
我看你的代码中好像有把AUTOCAD的窗口作为你的Form1的子窗口,是吧.
没看到你有写单独激活CAD窗口的语句啊.

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧