怎么制作一个类似button控件的 ocx呢? 系统默认的只是绘制一个圆,如果想将控件做成像 button那样的窗口界面,该如何做? 有参考资料提供以下。同事只给我一个 .ocx的文件,我该如何使用里面的接口? 在我的机器上制作的 .ocx如果要拿到其他机器上使用,该提供哪些文件? 能直接把文件拷贝过去注册控件后使用吗?想做一个类似flash 播放器 那样的能在web页面上使用的控件,哪个兄弟给个案例或者链接。

解决方案 »

  1.   

    直接放个按钮上去不行么可以学习一下杨老师的《COM组件设计与应用》
    http://www.vckbase.com/vckbase/columnist/yangfeng/
      

  2.   

    放到哪呢?  在向导中我选则基类可以是CButton或者其他控件类,就出来了,这样可以吗?待会给分哈,多谢
      

  3.   

    看看这个
    http://my.oschina.net/SmileWolf/blog/17206
      

  4.   

    默认的active工程在ctrl类中OnDraw函数中绘制椭圆,你在ctrl中定义一个成员按钮,在Ctrl::OnDraw中MoveWindow然后Show既可
      

  5.   

    将ocx控件,以及ocx控件所依赖的库都考过去,然后在其他机子上注册ocx,就可以使用了,点击鼠标右键,里面有个insert activex control..,会默认生成一个类,此类即是控件所生成的类
      

  6.   

    两个方法:
    方法1.让控件继承于标准控件,即在工程创建向导中选择MFC ActiveX ControlWizzard->next->在Which window class, if any, should this control subclass?中选择BUTTON,这样向导会增加以下函数:
    BOOL COcxBtnCtrl::PreCreateWindow(CREATESTRUCT& cs)
    {
    cs.lpszClass = _T("BUTTON");
    return COleControl::PreCreateWindow(cs);
    }BOOL COcxBtnCtrl::IsSubclassedControl()
    {
    return TRUE;
    }这样在OnDraw里只要简单处理即可:
    void COcxBtnCtrl::OnDraw(
    CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
    {
    DoSuperclassPaint(pdc, rcBounds);
    }方法2.自己在OnDraw函数里画:
    在Resource里面增加两幅图片,一幅button按下的图片,一幅button抬起的图片。在OnDraw里采用StretchBlt画抬起的图片;在OnLButtonDown里画按下去的图片即可。还有什么问题吗?
      

  7.   


    多谢回答,眼泪哗哗的啊。这里真二八经的回答问题的,越来越少了。。我自己也找到了一种方法就是插入并创建一个对话框,将他作为控件的成员,并设置属性为child,no title等,然后在create事件响应函数中创建并显示,在OnDraw中MoveWindow(CRect(0,0,50,50),true)也行给分