WEB开发网
开发学院软件开发VC 标准MFC WinSock ActiveX控件开发实例(II)高级篇 阅读

标准MFC WinSock ActiveX控件开发实例(II)高级篇

 2009-05-11 20:06:17 来源:WEB开发网   
核心提示: 五、接下来,我们看看VC和VB如何调用该控件:VC调用控件方式: 新建一对话框工程,然后在工程中添加该控件,标准MFC WinSock ActiveX控件开发实例(II)高级篇(4),设置如下图: 图一 创建新对话框工程,并加入控件响应控件的断网和数据到达事件,设置如下图: 图片看不清楚?

五、接下来,我们看看VC和VB如何调用该控件:

VC调用控件方式: 新建一对话框工程,然后在工程中添加该控件,设置如下图:

标准MFC WinSock ActiveX控件开发实例(II)高级篇

图一 创建新对话框工程,并加入控件

响应控件的断网和数据到达事件,设置如下图:

标准MFC WinSock ActiveX控件开发实例(II)高级篇

图片看不清楚?请点击这里查看原图(大图)。

图二 响应控件的两个事件

添加相应代码,看起来如下:

void CTestMFCWinSockDlg::OnRecvSockEventMfcwinsockctrl1() 
{

// TODO: Add your control notification handler code here

SAFEARRAYBOUND Bound[1];//一维数组

Bound[0].lLbound=0;

Bound[0].cElements=100;//该一维数组最大接收100个元素


VARIANT *data;

data = new VARIANT;

VariantInit(data);

data->vt = VT_ARRAY|VT_I4;//指明为长整型数组

data->parray = SafeArrayCreate(VT_I4,1,Bound);//创建SAFEARRAY结构

long l = m_sock.GetData(data,


COleVariant((long)0),


COleVariant((long)100),


COleVariant((long)3));

if(l<=0)

{

;//在这里判断出错信息,并作相应处理,我就偷懒了.

}


char pData[100]={0};//这里以字符数组显示结果

long change = 0;

for(long n=0; n<l; n++)

{

SafeArrayGetElement(data->parray,&n,&change);

pData[n] = (char)change;

}


CString mess;

mess.Format("%s",pData);

AfxMessageBox(mess);


SafeArrayDestroy(data->parray);

delete data;


}

void CTestMFCWinSockDlg::OnCloseWinsockMfcwinsockctrl1() 
{

// TODO: Add your control notification handler code here

m_sock.DisConnect();//调用断开连接接口

AfxMessageBox("服务器断开了该次连接,请检查!");
}

void CTestMFCWinSockDlg::OnConnect() 
{

// TODO: Add your control notification handler code here

UpdateData(TRUE);

if(!m_sock.Connect(COleVariant(m_ip),COleVariant(m_port)))

AfxMessageBox("与服务器建立连接失败,请确认服务器是否存在!");
}

上一页  1 2 3 4 5  下一页

Tags:标准 MFC WinSock

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接