新手问一个问题:怎么用VC做一个简单的OCX???今天头给了一个任务:让我用VC或VB做一个OCX,作用是向一个服务器的指定端口发送一个值,如:1或2,然后把这个,而且这个OCX要是隐藏的,不能在页面上显示(这个OCX是用在ASP页面上的),还说要用到Socket,可我以前从没做过OCX,我一直做ASP和C#的,请大家帮帮我,说一上怎么做,我先谢谢大家了。用VB VC都行

解决方案 »

  1.   

    建造 ActiveX 控件的三种方法
    以下是 Visual Basic 中创建控件的三种模式: 由零开始制作控件。
    改进现有的控件。
    把现有的几个控件组装成一个新的控件。 
    第二种和第三种模式是相似的,因为它们都需要把子控件放到 UserControl 对象上。不过,每种模式都有自己的特殊要求。制作用户绘制的控件
    如果由零开始写控件,那么可以制作任意外观和接口的控件。只需在 Paint 事件中添加代码来绘制控件。如果单击控件后其外观改变了,那就是代码进行了绘制的缘故。如果要创建新的可视部件,例如要求单击按钮后按钮被击碎并销毁,则应选用这个模式。详细信息 关于创建用户绘制控件的将在本章后面的“绘制控件”中深入讨论。改进现有的控件
    改进现有的控件就是把一个控件实例放到 UserControl 设计器上,并添加自己的属性、方法和事件。您可随意指定改进控件的接口。对于初始控件的属性、方法和事件,只有当决定显露它们时才需要把其包含在接口中。本章后面部分的“显露子控件的属性”描述了怎样用手工做这件事,以及如何使用“ActiveX 控件接口向导”使工作变得简单。改进现有控件的外观比改进接口难,因为要改进的控件有自己的绘制代码,并且绘制的行为可能取决于 Windows 的消息或其它事件。有经验的 Windows 程序员可以使用《部件工具指南》中的“使用 Windows API”所描述的使用 AddressOf 操作符把子控件归为子类。这就允许某些控件可以改变原来的外观,但没有方法来改变控件的绘制代码。使用控件的内嵌绘制功能来增强控件是相当容易的,而通过添加属性、方法和事件,或者截收并改变现有的属性和方法,则是比较困难的。本章后面的“绘制控件”部分将对此进行深入讨论。将几个现有的控件组装成新的控件
    在 UserControl 设计器上组装现有的若干控件可以迅速地构造出控件的外观和接口。例如,在“创建一个 ActiveX 控件”中分步讨论、并由 CtlPlus.vbg 示例程序中提供的 ShapeLabel 控件,它使用 Shape 控件来提供可视的背景色,使用 Label 控件来显示标题。图 9.3 和图 9.4 说明了多个子控件是怎样对 ActiveX 控件的外观和接口起作用的。图 9.3 子控件提供 ShapeLabel 的外观子控件只需出现在 UserControl 设计器上即可对控件实例的外观起作用。它们通过委派来对控件的接口起作用,如图 9.4 所示图 9.4 子控件对 ShapeLabel 的接口的作用。例如,下面的代码说明了如何把 ShapeLabel 的 Caption 属性委派给子控件的 Caption 属性 lblCaption。Public Property Get Caption() As String
       Caption = lblCaption.Caption
    End PropertyPublic Property Let Caption(NewCaption As String)
       lblCaption.Caption = NewCaption
       PropertyChanged "Caption"
    End Property详细信息 本章后面的“绘制控件”和“显露子控件的属性”将更加深入地探讨控件组装。PropertyChanged 的作用和重要性将在“在控件中添加属性”中讨论。
      

  2.   

    如果只实现那么简单的功能,vb是上上之选
    vc你一下子学不会阿.socket直接用 winsock控件,(很为难啊,这个东西说不定,客户端没有装阿,我们实在装vs的同时给装上的)想在网页中不显示,有个万能的方法(适合于大多数空间)
    设置它的属性为不可见.(visible=false)--------------------------------
    叫你用vc把新建工程-ATL COM APPWizard- 出现的界面上选择 dll(下面选择mfc支持)
    假设见好的工程名字为AAA点确认后,在class view 中,右键刚才见的工程
    选择new alt object 出现的对话框中选择Object-simple object(这样就没有界面了,网页中就不显示了)填写接口的名字,点确认后
    假设名字为BBB右键class view中的接口图标添加add method 
    填写要实现的方法
    比如说添加了一个SendMsg网络通讯用csocket实现。
    这样编译会得到一个dll------------------
    在网页,就像用real 控件一样
    在自动生成的文件中有UUID

    dim i as new  AAALib.BBB'注意这个名字和工程名,对象名的关系
    i.sendmsg()就可以了
      

  3.   

    其实这个东西直接使用Winsock就行了,看看MSDN上Winsock控件的使用方法就行了
    隐藏就像楼上说的那样没问题。