如何实现重试对话框“重试功能”?

linyang4242 2007-11-26 05:50:31
程序的第一步是要绑定到某一个端口,但有可能绑定失败,故做了个(retval==SOCKET_ERROR)判断。判断错误时要弹出具有“重试”功能的
提示对话框(MB_RETRYCANCEL)。那么,单击“重试”按钮要继续进行绑定端口,那要怎么编程实现这个逻辑判断呢?
我个人认为:bind()错误时返回SOCKET_ERROR,然后才出现MessageBox(),用户单击“重试”按钮返回IDRETRY,这时又bind()..........但此二者发生的时刻不同, 要怎么写这个判断语句啊??
BOOL CCharDlgDlg::InitSocket()
{
m_socket=socket(AF_INET ,SOCK_DGRAM ,0);
SOCKADDR_IN addrSock;
addrSock.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSock.sin_port=htons(6000);
addrSock.sin_family=AF_INET;

int retval=bind(m_socket,(SOCKADDR*)&addrSock,sizeof(addrSock));
if(retval==SOCKET_ERROR)
{
closesocket(m_socket);
MessageBox("端口绑定错误!",NULL,MB_RETRYCANCEL);//?
return FALSE;
}
return TRUE;
}
...全文
177 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vrace 2007-11-28
  • 打赏
  • 举报
回复
这样咯


while(1)
{
// something here
if(error)
{
if(MessageBox(....) == IDCANCEL) break;
}
else
{
break;
}
}
linyang4242 2007-11-28
  • 打赏
  • 举报
回复
LS的,重试对话框有 “重试”和“取消”两个按钮,这样写的话会一直测试直到成功,但也许我中途要选择“取消”的!
qiangv 2007-11-27
  • 打赏
  • 举报
回复
bRetry = false;
do
{
bind()....
if(error)
{
bRetry = (MessageBox("端口绑定错误!",NULL,MB_RETRYCANCEL) == IDRETRY);
}
}
while(bRetry)


ai...0 fen tie a.....
yishow 2007-11-26
  • 打赏
  • 举报
回复
判断MessabgeBox的返回值
if( MessageBox("端口绑定错误!",NULL,MB_RETRYCANCEL) == IDRETRY )
{
你想做的事情;
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧