读书人

关于VC/MFC的解决思路

发布时间: 2012-04-26 14:01:31 作者: rapoo

关于VC/MFC的
void CRunDlg::show()
{
SetDlgItemInt(IDC_A2,B[0]);SetDlgItemInt(IDC_A3,C[0]);
SetDlgItemInt(IDC_B2,B[1]);SetDlgItemInt(IDC_B3,C[1]);
SetDlgItemInt(IDC_C2,B[2]);SetDlgItemInt(IDC_C3,C[2]);
SetDlgItemInt(IDC_D2,B[3]);SetDlgItemInt(IDC_D3,C[3]);
SetDlgItemInt(IDC_E2,B[4]);SetDlgItemInt(IDC_E3,C[4]);
SetDlgItemInt(IDC_F2,B[5]);SetDlgItemInt(IDC_F3,C[5]); Sleep(2000);
SetDlgItemInt(IDC_G2,B[6]);SetDlgItemInt(IDC_G3,C[6]); Sleep(2000);
SetDlgItemInt(IDC_ALL,X);SetDlgItemText(IDC_AVG,strNumber);

}

我想让系统在显示IDC_F2和IDC_F3这两个动态文本控件后,暂停2秒后再显示后面IDC_G2和IDC_G2这两个动态文本控件再暂停2秒
在显示IDC_ALL和IDC_AVG
但是系统调用这个函数后,就暂停4秒才一起显示所有的文本控件!求知道,我该怎么修改代码才能实现这个功能

[解决办法]
使用for循环试试
[解决办法]
SetDlgItemInt(IDC_F2,B[5]); SetDlgItemInt(IDC_F3,C[5]); Sleep(2000);
RedrawWindow();
[解决办法]
你的程序没机会响应消息就睡着了,所以一睡睡4秒,直到醒来才发现没显示,一起显示了,中间加个响应消息的函数就行了。

C/C++ code
BOOL CheckMessageQueue() {     MSG msg;         while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){         if(msg.message==WM_QUIT)             return FALSE;         TranslateMessage(&msg);         DispatchMessage(&msg);     }     return TRUE; } void CAboutDlg::OnButton1() {    // TODO: Add your control notification handler code here        SetDlgItemInt(IDC_EDIT1,111);     CheckMessageQueue();    Sleep(2000);    SetDlgItemInt(IDC_EDIT2,222);    CheckMessageQueue();    Sleep(2000);    SetDlgItemInt(IDC_EDIT3,333);    }
[解决办法]
不是特别明白你想干什么
不过Sleep会让线程挂起、界面假死
我觉得应该不是你要的效果

读书人网 >VC/MFC

热点推荐