我创建了一个对话框类继承了cdialog类同时也关联了IDD_DIALOG1,然后我在一个按钮的点击事件中写代码如下我的对话框类是testdialog,
click()
{
  testdialog kk;
   kk.creat(IDD_DIALOG1,this);
   kk.showwindow(SW_SHOW);
   SLEEP(5000)
   }
这样的结果是5秒之后对话框才出现,并且如果下面加上kk.destroywindow的话根本就出现不了对话空,我的意思是想循环显示对话框,显示一秒后自动销毁,希望大家帮忙?

解决方案 »

  1.   

    你可以在主对话框中设置一个Timer吧,到时间给你的TestDialog发送一个特殊消息,TestDialog响应这个消息,EndDialog自己。不知道这样是否满足你的要求?
      

  2.   

    或者TestDialog自己设置Timer,Timer中结束自己,OK?
      

  3.   

    你的testdialog kk;定义为类的成员变量,而不是局部变量。可以在testdialog中SetTimer启动一个定时器
      

  4.   

    不行啊,只要在同一个函数里面出现creat和destroywindow就显示不出来对话框,郁闷
      

  5.   

    没必要DestroyWindow,只用ShowWindow(SW_HIDE);隐藏起来就应该可以的把。不是说让你调用Create创建非模态对话框以后,就紧接着调用DestroyWindow()来销毁窗口。当然你再Create之前需要先判断一下HWND窗口句柄是否存在,不存在就创建,存在就不需要做任何处理。即可以在父窗口类中调用SetTimer在OnTimer中ShowWindow(SW_HIDE);来隐藏你的非模态对话框。也是在子窗口类中添加WM_TIMER消息,在OnTimer中ShowWindow(SW_HIDE);来隐藏。