我在vc6下编写了一个实现位图的淡入淡出的AxtiveX控件,是从CStatic类派生的,
其中有一个函数,为:
BOOL LoadAlphaBitmap(……);
通过它来实现位图淡入淡出的功能,
请问我在应用程序的对话框中加入此控件后,
怎样才能调用此函数?

解决方案 »

  1.   

    flyycyu(fly)大侠,能不能说得详细点?多谢了!
    我将此控件加入工程后,VC自动生成一个相应的类,其中并无可调用此函数的接口.
      

  2.   

    直接创建此类的实例,然后调用其LoadAlphaBitmap方法
      

  3.   

    qaymuic(qaymuic)大哥,你说了等于没说,要能调用我早就调用了。:-)
    不过还是非常感谢你不吝赐教。结贴时一定给分!
      

  4.   

    不知道你的应用程序是用什么写的如果是vb的话,如下语句:
    dim foo as object
    set foo=createobject("your activex name")
    foo.loadbitmap xx xx ...
    如果是vc的话,麻烦点:
    CoInitialize(NULL);
    // TODO:在此添加额外的初始化代码
    CLSID clsID;
    CLSIDFromString(A2W("{E2F1F220-89BC-4E36-9E19-60383691E69E}"),&clsID);
    DISPID dispid=null;
    ::CoCreateInstance(clsid,null,CLSCTX_INPROC_SERVER,IID_IDISPATCH,(void**)&pIDispatch);
    ....
    CoFreeLibrary(hin);
      

  5.   

    错了!正确的在下面:
    CoInitialize(NULL);
    // TODO:在此添加额外的初始化代码
    CLSID clsID;
    CLSIDFromString(A2W("{E2F1F220-89BC-4E36-9E19-60383691E69E}"),&clsID);
    DISPID dispid=null;
    ::CoCreateInstance(clsid,null,CLSCTX_INPROC_SERVER,IID_IDISPATCH,(void**)&pIDispatch);
    DISPID dispid;
    OLECHAR* name=L"LoadAlphaBitmap"           fx为一个函数名
    pIDispatch->GetIDsOfNames(IID_NULL,&name,1,GetUserDefaultLCID(),&dispid);
    DISPPARAMS dispparamsNoArgs={null,null,0,0};
    pIDispatch->Invoke(dispid,IID_NULL,GetUserDefaultLCID(),DISPATCH_METHOD,&dipparamsNoArgs,NULL,NULL,NULL);....
    CoFreeLibrary(hin);
      

  6.   

    如果你在对话框中加入了此控件,MFC会自动生成一个类,这个类有一个CREATE方法
    你创建一个实例,然后调用create方法,再以后就可以正常使用了