小弟有个对话框,要让其显示完毕之后执行一段代码,不知该用哪个消息?我试过WM_ACTIVATE好象不行。多谢

解决方案 »

  1.   

    不好意思,刚才忘记说了,执行完这段代码还要让对话框自己关闭,所以放在OnInitDialog里面肯定是不行的
      

  2.   

    可以在OnInitDialog()最后面添加:
    SetTimer( 1, 1000, NULL );
    然后在WM_TIMER消息响应函数OnTimer()中:
    {
         if( GetSafeHwnd() == NULL )
             return;
         
         // 执行你的代码
         ......
         EndDialog( IDOK ); // 关闭对话框
         
    }
      

  3.   

    当然:如果你执行代码比较费时的话,可以更加完善一下OnTimer函数:
    void CxxxDlg::OnTimer( UINT nIDEvent )
    {
         if( nIDEvent == 1 )
         {   
               if( GetSafeHwnd() == NULL )
                   return;
          
               KillTimer( nIDEvent );           // 执行你的代码
               ......
         
               EndDialog( IDOK ); // 关闭对话框
         }
    }