 |
|
VC++实现拨号上网程序详解 |
出处:PConline 责任编辑:pcedu |
[03-9-24 11:20]
| 作者:佚名
| -
2. 理确认消息以得到拨号过程的当前状态。
我们以指定窗口来处理确认消息为例说明如何得到拨号过程的当前状态。
在处理确认消息的对话框类(或视图类等)的实现代码中加入:
const UINT WM_RASEVENT = ::RegisterWindowMessageA(RASDIALEVENT);
在Message Map中手工加入消息映射:(****是你定义的对话框类名称)
BEGIN_MESSAGE_MAP(****, CDialog)
//AFX_MSG_MAP(****)
……
ON_REGISTERED_MESSAGE(WM_RASEVENT, OnRasDialEvent)(<-加入此句)
//AFX_MSG_MAP
END_MESSAGE_MAP()
加入成员函数处理消息:
LRESULT CDialInfo::OnRasDialEvent(WPARAM wp, LPARAM lp)
{
RASCONNSTATE rasstate= (RASCONNSTATE)wp;
CListBox *info =(CListBox *)GetDlgItem(IDC_INFOLIST);
//用ListBox 控件(ID为IDC-INFOLIST)来显示状态)
switch(rasstate)
{
case RASCS_OpenPort:
info→AddString(_T(″打开端口……″));
break;
case RASCS_PortOpened:
info→AddString(_T(″端口已打开.″));
break;
case RASCS_ConnectDevice:
info→AddString(_T(″连接设备……″));
break;
case RASCS_DeviceConnected:
info→AddString(_T(″设备已连接.″));
break;
case RASCS_Authenticate:
info→AddString(_T(″验证用户及密码″));
break;
case RASCS_Authenticated:
info→AddString(_T(″通过″));
break;
case RASCS_Connected:
info->AddString(_T(″已连接″));
reak;
case RASCS_Disconnected:
info->AddString(_T(″连接已断开″));
m_hRasConn=NULL;
//可定义类型为HRASCONN的成员变量m_hRasConn来保存RAS连接的句柄。
//在调用RasDial时用指向m_hRasConn的指针作为lphRasConn参数。
//既然用m_hRasConn来保存连接句柄,连接断开后应重置为NULL.
break;
default:
return (LRESULT)0;
}
return (LRESULT)0;
}
3. 断开连接:
if (m_hRasConn != NULL)
{
RasHangUp(m_hRasConn);
m_hRasConn = NULL;
m_OnDial=TRUE;
:Sleep(2000);
}
ad
相关文章:
| |  | -
|  |