CreateRectRgn,SetWindowRgn,DeleteObject,如此循环...

解决方案 »

  1.   

    把你的Dialog就可以了
    void CGPushDialogFromCenter(CDialog &dlg)
    {
        dlg.ShowWindow(SW_HIDE); 
        CRect rect; 
        dlg.GetClientRect(&rect); 
        CPoint ptCenter; 
        ptCenter.x = rect.Width()/2; 
        ptCenter.y = rect.Height()/2; 
        int m = ::GetSystemMetrics(SM_CYSIZEFRAME); 
        //dianamic pop the dlg
        CRgn rgn; 
        for (int i = 10; i < rect.Width()/2 + 2*m; i += 1) 
        { 
            rgn.CreateRectRgn(ptCenter.x - i, ptCenter.y - i, ptCenter.x + i, ptCenter.y + i); 
            dlg.SetWindowRgn((HRGN)rgn, TRUE); 
            dlg.ShowWindow(SW_SHOW); 
            dlg.CenterWindow(); 
            rgn.DeleteObject(); 
        } }
      

  2.   

    补充:
    BOOL CAboutDlg::OnInitDialog()
    {
    CDialog::OnInitDialog();  
             CGPushDialogFromCenter(*this); //动态爆炸式推出窗口! 
    return TRUE; }