关于VB DLL技术
在VB DLL中做个对话框,可是在ACAD 中引用这个DLL,然后调用对话框时发现,这个对话框是独立于CAD的,无法与CAD之间进行交流,请问各位高手能否设定该对话框的交窗口为CAD! 在窗体里加入下列代码Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private m_oApp As Object
Public Property Set Application(ByVal vNewValue As Object)
Set m_oApp = vNewValue
End Property
Private Sub Form_Load()
SetParent Me.hwnd, GetParent(GetParent(m_oApp.ActiveDocument.hwnd))
End Sub
类模块:
Private m_oApp As Object
Public Property Let Application(ByVal vNewValue)
Set m_oApp = vNewValue
End Property
Public Sub ShowForm()
Set frmTest.Application = m_oApp
frmTest.Show
End Sub
雪山飞狐版主,能否举例说明其用法,因我用时产生一个自动化错误!
在DLL文件中设置的窗体的名字应当是frmTest吧!
请问能否给我一个调试好的DLL及源文件,以说明其用法,因我在使用时确实出现了一个自动化错误,起初以为是没有引用Acad Libabry,后来引用了还是出错,请高手解决此问题 新年好!
我用VB6.0做Active DLL在AutoCAD中使用。
目的是在类模块中调用窗体,获得几个输入参数.
在IDE中可以运行,但把它从IDE中导出,在VB6.0中却不能用。
不知道为什么?
VB6.0工程的描述
1.窗体名:Myform(从添加文件导入后属性显示为UserForm)
定义了一个文本框TextBox1和一个按钮CommandButton1
Private Sub CommandButton1_Click()
str = TextBox1.Text
Me.Hide
End Sub
2.类模块名:Myclass
Public Sub aaa()
Myform.Show
End Sub
3.模块名:Myprog
Public str As String
Public Sub main()
Dim Class1 As New Myclass
Class1.aaa
MsgBox str
End Sub
运行后,无法把窗体中的变量传给类模块中的过程使用。
并且,MsgBox str不等Class1.aaa执行完就执行了。
另外上面,雪山飞狐斑竹的程序太深奥,不明白。还是请雪山飞狐斑竹说明一下。
终于能明白了。要用带模式窗体。
把类模块中的语句改为
Myform.Show vbModal
就可以了。
页:
[1]