关于mfc调用函数问题!!

以下是一个mfc做的服务器的一部分代码!这两个函数是什么时候调用的呢?voidCTcpSeverDlg::onac(){//Beep(2000,100);CStrings... 以下是一个mfc做的服务器的一部分代码!
这两个函数是什么时候调用的呢?
void CTcpSeverDlg::onac()
{

//Beep(2000,100);
CString str1,str;
GetDlgItemText(IDC_EDITRev,str1);
CString str2="\r\n用户进入";
str=str1+str2;
SetDlgItemText(IDC_EDITRev,str);

sever.Accept(Recv);
Recv.setp(this);

}

void CTcpSeverDlg::oncl()
{
// Beep(2000,100);
CString str1,str;
GetDlgItemText(IDC_EDITRev,str1);
CString str2="\r\n用户退出";
str=str1+str2;
SetDlgItemText(IDC_EDITRev,str);
if(!Recv) Recv.Close();
}
void CTcpSeverDlg::OnBUTTONListen()
{
// TODO: Add your control notification handler code here
CString ipstr,portstr;

int port;
GetDlgItemText(IDC_EDITPort,portstr);
portstr.TrimLeft();
portstr.TrimRight();
port=atoi(portstr);
if(port>0&&port<9999){
if(sever.Create(port)){
// cslisten.Bind(port);
sever.Listen();
sever.setp(this);
sever.Listen();
CWnd *cw=GetDlgItem(IDC_EDITPort);
cw->EnableWindow(false);
cw=GetDlgItem(IDC_BUTTONListen);
cw->EnableWindow(false);
cw=GetDlgItem(IDC_EDITRev);
cw->SetWindowText("\r\n正在后台等待用户连接,监听端口:"+portstr+"...");
}
else{
MessageBox("绑定监听端口失败,请确认该端口没有被其它程序占用");
sever.Close();
}
}
else{
MessageBox("端口输入有误,请重新输入");
}

}

onbutton是按下button时候调用!但是onac和oncl是做什么动作的时候调用呢!?
oncl 如果是普通成员函数 为什么没有看到在其他函数看到调用 以用word 搜过
展开
 我来答
skx_scu
2012-05-29 · 超过10用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:33.8万
展开全部
onac(accept)是listen之后调用,等待客服端的连接...oncl(close)是关闭socket的时候调用,用来断开连接的。。。 这两个函数不一定是消息响应函数,有可能只是CTcpSeverDlg的普通成员函数,而OnBUTTONListen() 是消息响应函数,具体是不是,你要看源代码中的消息映射宏。。。
追问
oncl 如果是普通成员函数 为什么没有看到在其他函数看到调用 以用word 搜过
蜻蜓点水bai236
2014-03-25 · TA获得超过2387个赞
知道大有可为答主
回答量:2653
采纳率:66%
帮助的人:1226万
展开全部
这段代码我看过
其实在CTcpSeverDlg.h钟有个类

csocket里面重新定义了成员函数
我觉得应该是socket侦听之后,肯定会调用socket接受数据的模块,因为socket又重新定义了
所以就会转向执行到新建的成员函数里面
这几个成员函数是没有加消息响应的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
归悦欣cf
2012-05-29 · TA获得超过1443个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1319万
展开全部
onac()函数应该是在客户端要求连接的时候被调用;而oncl应该是客户端断开连接的时候被调用,至于在哪里被调用,你可以利用VC的查找功能在整个工程中查找这两个函数就会找到他们被调用的地方。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洋修亓官安吉
2019-11-30 · TA获得超过3728个赞
知道大有可为答主
回答量:3159
采纳率:24%
帮助的人:409万
展开全部
你要把SetPlay()函数的类型定为BOOL才才可以.,...你那里都说了条件表达式为非法.你是设为void型了(error
C2451:
conditional
expression
of
type
'void'
is
illegal)..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式