15,976
社区成员
发帖
与我相关
我的任务
分享
.....
case IDOK:
{
//disable the OK and Cancle button,防止用户多次点击
SetWindowText(GetDlgItem(hDlg, IDC_STATICERROR), L"Logging in ...... ");
EnableWindow(GetDlgItem(hDlg,IDOK), FALSE); //??这两个语句没有效果,
因为整个主线程被下面的login()阻塞了!
这个EnableWindow()也是通过发送message来响应,
但由于主线程被下面的语句阻塞,该message根本得不到处理,
所以不会 disable这个OK 按钮.
EnableWindow(GetDlgItem(hDlg,IDCANCEL), FALSE);
try
{
g_pShare->Login(); //这里要到服务器端验证,需要较长的时间....
}
catch ( ...)
{
SetWindowText(GetDlgItem(hDlg, IDC_STATICERROR), L"Connection failed! ");
EnableWindow(GetDlgItem(hDlg,IDOK), TRUE);
EnableWindow(GetDlgItem(hDlg,IDCANCEL), TRUE);
}
...... 进入主界面进行处理的代码