读书人

vc++ 关于消息提示框自动关闭的有关问

发布时间: 2012-03-31 13:13:26 作者: rapoo

vc++ 关于消息提示框自动关闭的问题?
请问:
1.当我点击界面按钮"A",执行代码段Code,需要较长的时间。这个时候,我想一点击按钮"A"的时候,弹出提示框告知用户,“请等待...”的提示信息,待该代码段Code执行完后,该消息提示框自动关闭。
我开始用非模式对话框来实现。。。效果不好。有什么好的方法实现吗?

code 代码段:

void CExecuteDlg::TiShi{

-------弹出消息提示框

-----完成其他功能的代码

------关闭消息提示框



}

[解决办法]
你说的效果不好是界面不好看吗,还是不好控制提示框.如果是界面不好看,可以在提示框加上背景,如果是不好控制提示框,好象是不太难吧.
其实可以在提示框里加个进度条,这个进度条可以是自己画,也可以是用控件.用自己画的好象看,用控件方便,但颜色不好改
[解决办法]

C/C++ code
class CExecuteDlg : public CDialog{...public:    static UINT MyThread(LPVOID pParam);...};UINT CExecuteDlg::MyThread(LPVOID pParam){    //弹出消息提示框        //完成其他功能的代码        //关闭消息提示框    return 0;}void CExecuteDlg::OnButtonTest() {    // TODO: Add your control notification handler code here    CWinThread *pThread = AfxBeginThread(MyThread, this);    ::WaitForSingleObject(pThread->m_hThread, INFINITE);}
[解决办法]
void CTestDlgDlg::OnBnClickedButtonA()
{
TestChildDlg *dlg=new TestChildDlg;
dlg->Create(IDD_DIALOG1,NULL);
dlg->ShowWindow(SW_SHOW);

-----完成其他功能的代码

dlg->DestroyWindow();
}
[解决办法]
执行一段代码最好放到一个线程里,等待线程执行完毕后,再关闭模态对话框。
[解决办法]
探讨
引用:
void CTestDlgDlg::OnBnClickedButtonA()
{
TestChildDlg *dlg=new TestChildDlg;
dlg->Create(IDD_DIALOG1,NULL);
dlg->ShowWindow(SW_SHOW);

-----完成其他功能的代码

dlg->DestroyWindow……

[解决办法]
把你费时的操作放到线程函数中去做,你的UI线程中创建线程,然后弹出一个模态对话框,线程执行完成以后关闭该模态对话框即可。
[解决办法]
“我想一点击按钮"A"的时候,弹出提示框告知用户,“请等待...”的提示信息,”你的想法不对,应该是在执行代码的时候,按钮A禁用(灰色),等到代码执行完,A可以用(正常色)。
[解决办法]
我觉得用线程更好些 可以定义变量然后用来线程通信就可以了

读书人网 >VC/MFC

热点推荐