程序要连接到服务器,这时候界面会没响应20秒钟,我想修改成
按下连接之后,跳出一个dialog,上面只有一个"取消"按钮,按下可以就终止连接,现在需要做到
1. 当网络很流畅,比如1秒后就连上了,这时候要关闭那个"取消"的dialog
2. 20秒内用户随时可以按下"取消"按钮来结束连接
3. 当20秒过后,"取消"的那个dialog自动消失
看似不难,可我想了1个钟头没想出来。。目前我的代码如下,我知道这样明显是不行的,但实在想不出行的方法,请问 应该怎么修改。。unsigned __stdcall ThrdConnect(LPVOID args) {//这个是连接服务器的线程
return core_connect();//core_connect函数可以用stopConnect()来终止

LRESULT CALLBACK ConnectingDialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch(uMsg){
case WM_INITDIALOG:
hThrd_con=(HANDLE)_beginthreadex(ThrdConnect...);
WaitForSingleObject(hThrd_con, INFINITE);
EndDialog(hDlg, 0);
break;
  case WM_CLOSE:
  case WM_COMMAND://"取消"按钮被按下
stopConnect();//结束线程
EndDialog(hDlg, 0);
break;
};
return 0;
}void ConnectToServer() { //连接函数
DialogBox(hx,(LPCTSTR)DLG_CONNECTING,pDlg,(DLGPROC)ConnectingDialogProc);
DWORD ret;
::GetExitCodeThread( hThrd_con, &ret );
}