三个问题

fpe2000 2000-05-24 02:33:00
1.一个服务/客户端的应用程序,假如服务器应用程序意外终止,如何通知客户端应用程序,并使其delete socket?
2.当工程窗口将要关闭的时候,弹出一个对话框,确认是否关闭,选ok关闭,选cancel取消关闭,应用什么类的什么事件?具体代码如何?
3.程序的对话框(1)弹出来需要一些时间,如何在这段时间内显示出一个包含有进度控件的对话框,显示对话框(1)初始化的进度?进程控件如何设置?
...全文
171 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fpe2000 2000-05-28
  • 打赏
  • 举报
回复
3.我create(ID_DIALOG)了一个非模态对话框,但是却没有显示,为什么?
源代码为
CCdlg *pDialog=new CCdlg;

////ASSERT_VALID(pDialog);

////Create the modeless dialog .

////BOOL bResult =
pDialog->Create(IDD_DIALOG1);

////ASSERT(bResult);
fpe2000 2000-05-28
  • 打赏
  • 举报
回复
用进程控件,是不是还要设置Timer?如何设置?
lu0 2000-05-25
  • 打赏
  • 举报
回复
通常情况下CLIENT并不能预料SERVER何时会出错.所以CLIENT加TIMEOUT才是正解.如果在TIMEOUT阀值内SERVER没有响应,就视为出错.
mach 2000-05-24
  • 打赏
  • 举报
回复
unix系统中每个进程退出后(无论正常或异常),其所占的资源都会释放,所以当服务器程序运行在unix上时,客户程序只要响应OnClose()消息,或recv时返回值为0,就可以知道server端的socket已释放了.
Kenny 2000-05-24
  • 打赏
  • 举报
回复
1、客户端加伺服线程,在此进程中判断是否有服务程序响应。
2、如果是文档视结构,可在文档C...Doc中重载OnCloseDocument()或CanCloseFrame()两个虚函数。在非文档/视结构的程序中,要视情况而定。
3、一般说来,显示进度的对话框,应在不同线程中实现,否则,你的Progress显示的效果不会太好。而显示进度,可用VC标准的Progress控件。
evelan 2000-05-24
  • 打赏
  • 举报
回复
客户端程序只要在每次AsyncSelect( .... and FD_CLOSE),那么服务器程序异常中止时系统会释放网络资源,这样你的客户程序就会得到OnClose()消息!不知道unix系统是否会释放网络资源.(实用于Windows OS)
evelan 2000-05-24
  • 打赏
  • 举报
回复
因为你的大部分初始化代码都在OnInitDialog()函数中做的.一个比较土的办法,就是在对话框(1)的OnInitDialog开始时,在Create一个对话对话进度框(即非模式的),在初始化完成后DestoryWindow(),
另一个比较好的办法,就是利用多线程创建对话框,进度对话框关闭后才现实对话框(1)
Asima 2000-05-24
  • 打赏
  • 举报
回复
第2个问题
在处理WM_CLOSE消息的函数中加上
if (AfxMessageBox("Are you sure you want to close it?"
,MB_OKCANCEL)==IDCANCEL) return;
注意应该加在调用基类的OnClose()之前
以单文档界面为例
void CMainFrame::OnClose()
{
// TODO: Add your message handler code here and/or call default
if (AfxMessageBox("Are you sure you want to close it?"
,MB_OKCANCEL)==IDCANCEL) return;
CFrameWnd::OnClose();
}

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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