Windows 7下VB 6中的"用户定义的类型未定义"错误

sun*_*d87 9 vb6 windows-7

我使用的是Windows 7,我的项目是在VB 6.0中.我在执行程序时遇到错误.它显示错误:

用户定义的类型未定义.

这是我的代码:

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
    Select Case Button.Key
        Case "trace": Call mntrace_Click
        Case "snrplot": Call mnSnrplot_Click
        Case "skyplot": Call mnskyplot_Click
        Case "nmea": Call mnNmea_Click
        Case "navigation": Call mnNavigation_Click
        Case "survey": Call mnSurvey_Click
        Case "pause/start": Call mnpause_Click
        Case "save": Call mnsave_Click
        Case "print": Call mnprint_Click
        Case "offline": Call mnoffline_Click
    End Select
End Sub
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个错误?

Cod*_*ray 24

出现错误时,编译器会自动突出显示函数声明的第一行.这意味着错误发生在该行的某个地方.有时这并不像你想的那样有用,但在这种情况下,它设法告诉你很多.

具体来说,函数声明中出现的唯一"用户定义类型"(实际上,唯一的"类型")是MSComctlLib.Button.编译器错误消息告诉你的是它不知道是什么MSComctlLib.Button.因此,它假设它是"用户定义"类型,因为它通常不知道用户在说什么.:-)

无论哪种方式,修复都很简单:您需要告诉编译器它MSComctlLib.Button是什么.在这种情况下,假设它是用户定义的类型,它猜错了.它实际上是Microsoft Windows公共控件库中提供的按钮控件.要告诉VB 6有关此控件的信息,您需要将相应的组件添加到项目中.跟着这些步骤:

  1. 从"项目"菜单中,选择"组件".

  2. 在出现的对话框中,向下滚动列表中的2/3到M的位置.通过"Microsoft Windows Common Controls 6.0"和"Microsoft Common Controls-2 6.0"项目进行检查.(如果您的服务包名称不同,请不要担心.)

         VB 6 IDE中的组件对话框

  3. 单击"确定"按钮.如果你很快,你会看到一些额外的控件被添加到你的工具箱中.这些是您刚刚添加的组件库提供的控件.在这些控件中有一个叫做Button.

最后,尝试再次编译和运行你的项目 - 这次一切都应该没问题,因为现在编译器知道MSComctlLib.Button类型是什么.如果您还没有,它是工具栏上显示的按钮.工具栏控件由公共控件库提供,它包含一个类型,用于定义出现在该工具栏上的单个按钮.