1、以ATL的方式进行调用,ocx的本质是ATL,所以可以用调用ATL的方法进行调用。不过在插入头文件的时候跟ATL不同,需要以文件的形式加载读取他的头文件(因为ocx是控件只会生成在"ActiveX控件中的MFC类",不会生成在"ATL类型库里面的MFC类")。
选择完文件之后,即可添加对应的接口类。
void Ctest5Dlg::OnBnClickedTestBt()
{
// TODO: 在此添加控件通知处理程序代码
CoInitialize(NULL);
m_lpOCX = new COFDReaderActiveX();
//加载控件 指定要创建的IDispatch连接对象的类ID。
BOOL bRet = m_lpOCX->CreateDispatch("suwellreaderax.OFDReaderActiveX.1");
if(m_lpOCX != NULL)
{
CString csParam1 = "C:\\Users\\lyf\\Desktop\\PDF\\blank.pdf";
CString csParam2 = "C:\\Users\\lyf\\Desktop\\PDF\\blank.ofd";
CString csParam3 = ""; //C:\\Users\\lyf\\Desktop\\PDF\\bmeta.xml
CString csRet = m_lpOCX->getAllCompsiteNames();
MessageBox(csRet);
//BOOL bRet = m_lpOCX->openFile(csParam1);
//BOOL bRet = m_lpOCX->convertFile(csParam1, csParam2, csParam3);
int a = 3;
a = 4;
return;
}
if(m_lpOCX != NULL)
{
m_lpOCX->ReleaseDispatch();
}
if(m_lpOCX != NULL)
{
delete m_lpOCX;
m_lpOCX = NULL;
}
CoUninitialize();
}
2、在对话框中插入ActiveX,之后对插入的资源添加变量,即可生成对应的类。该方法创建时候有边框的资源。
3、在类导向中点击 “ActiveX控件中的MFC类”,选取对应的ocx,后可以进行动态添加ocx,或者也可以在资源对话框中创建资源,然后进行添加变量。如有有存在对应的OCX类则,添加变量时不会添加新文件。