Từ 1 tới 1 trên tổng số 1 kết quả

Đề tài: Hướng dẫn Tạo Hiệu Ứng Load Dialog

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Red face Hướng dẫn Tạo Hiệu Ứng Load Dialog

    Giúp dialog lúc load có thể chạy đẹp hơn ^^!
    với hàm khởi tạo dialog
    Code:
    BOOL CMoveWinDlg::OnInitDialog()
    {
    	CDialog::OnInitDialog();
    
    	// Add "About..." menu item to system menu.
    
    	// IDM_ABOUTBOX must be in the system command range.
    	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    	ASSERT(IDM_ABOUTBOX < 0xF000);
    
    	CMenu* pSysMenu = GetSystemMenu(FALSE);
    	if (pSysMenu != NULL)
    	{
    		CString strAboutMenu;
    		strAboutMenu.LoadString(IDS_ABOUTBOX);
    		if (!strAboutMenu.IsEmpty())
    		{
    			pSysMenu->AppendMenu(MF_SEPARATOR);
    			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    		}
    	}
    
    	// Set the icon for this dialog.  The framework does this automatically
    	//  when the application's main window is not a dialog
    	SetIcon(m_hIcon, TRUE);			// Set big icon
    	SetIcon(m_hIcon, FALSE);		// Set small icon
    
    	//////////////////////////////////////////////////
    	CRect dlgRect; 
    	GetWindowRect(dlgRect); 
    	CRect desktopRect; 
    	GetDesktopWindow()->GetWindowRect(desktopRect); 
    
    	MoveWindow((desktopRect.Width() - dlgRect.Width()) / 2, 
    		(desktopRect.Height() - dlgRect.Height()) / 2, 
    		dlgRect.Width(), dlgRect.Height() ); 
    
    	MoveWindow( (desktopRect.Width() - dlgRect.Width()) / 2, 
    		(desktopRect.Height() - dlgRect.Height()) / 2, 
    		0, 
    		0 ); 
    	nWidth=dlgRect.Width(); 
    	nHeight=dlgRect.Height(); 
    	dx=6; // you can modify this 
    	dy=8; // you can modify this 
    	::SetTimer(this->m_hWnd, IDT_TIMER3,10 , NULL); 
    	// TODO: Add extra initialization here
    
    	return TRUE;  // return TRUE  unless you set the focus to a control
    }

    để cho việc vén màn dialog diễn ra theo 1 thời gian nhất định ta cần hàm đặt thời gian cho nó


    Code:
    void CMoveWinDlg::OnTimer(UINT_PTR nIDEvent)
    {
    	// TODO: Add your message handler code here and/or call default
    	CRect dlgRect;
    	GetWindowRect(dlgRect);
    
    	CRect desktopRect;
    	GetDesktopWindow()->GetWindowRect(desktopRect);
    
    	if(nIDEvent == IDT_TIMER3)
    	{	
    		MoveWindow(
    			(-dx+desktopRect.Width() - dlgRect.Width()) / 2,
    			(-dy+desktopRect.Height() - dlgRect.Height()) / 2, 
    			+dx+dlgRect.Width(),
    			+dy+dlgRect.Height() );
    
    		if(dlgRect.Width() >=nWidth) 
    			dx=0; // do not over grow
    		if(dlgRect.Height() >=nHeight)
    			dy=0; // do not over grow	
    	}
    
    	if((dlgRect.Width() >=nWidth) && (dlgRect.Height() >=nHeight))
    		::KillTimer(this->m_hWnd, IDT_TIMER3); //Stop the timer	
    	CDialog::OnTimer(nIDEvent);
    }

    Cuối cùng là Project
    Attached Files Attached Files

Các đề tài tương tự

  1. Dialog::DoModal trong MFC. Làm thế nào để tương tác với dialog bên dưới?
    Gửi bởi rua_con trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 7
    Bài viết cuối: 29-02-2012, 03:27 PM
  2. Cách load ảnh bitmap lên dialog trong MFC như thế nào?
    Gửi bởi chang_kho_thuy_chung trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 13
    Bài viết cuối: 11-07-2011, 10:37 PM
  3. Cách gọi một hàm của dialog chính chứa tab control có tab item là dialog child
    Gửi bởi theboy909 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 13-06-2011, 06:51 AM
  4. Cách load ảnh bitmap lên dialog bằng MFC???
    Gửi bởi haba trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 2
    Bài viết cuối: 23-11-2010, 05:14 PM
  5. Di chuyển Dialog khi drag and drop phần thân Dialog (Client)?
    Gửi bởi mu9991 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 4
    Bài viết cuối: 07-11-2008, 10:48 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn