程序大体如下:dlg.Create(IDD....)     非模式对话框dlg.ShowWindow(SW_SHOW);     显示非模中的一些提示信息,里面有个Timer主界面阻塞操作,比如Sleep(10000); dlg.ShowWindow(SW_HIDE);     关闭非模式对话框在主界面执行Sleep(10000)的时候,那个非模dlg中的控件也不响应任何操作,包括按钮和Timer都不响应了,有什么办法能让主界面阻塞的时候,非模dlg响应自己的消息吗?

解决方案 »

  1.   

    主界面执行Sleep(10000)不能这么做
      

  2.   

    一般情况非模式对话框没消息循环,是不会响应消息的,除了自己手动添加
    http://search.csdn.net/Expert/topic/949/949731.xml?temp=.8637812
    http://search.csdn.net/Expert/topic/947/947034.xml?temp=.8674433
      

  3.   

    楼主不知道你明白没有,我认为:
    一个线程中,哪怕有不同的窗体和不同的消息循环,一旦某个窗体中使用了sleep阻塞了线程,那就葛了(其他的都被阻塞)!