void CMFCMoveWindowDlg::OnBnClickedButton1() { //left CRect rec; GetWindowRect(&rec); rec.left -= m_iMove; rec.right -= m_iMove; MoveWindow(&rec); } void CMFCMoveWindowDlg::OnBnClickedButton3() { //right CRect rec; GetWindowRect(&rec); rec.left += m_iMove; rec.right += m_iMove; MoveWindow(&rec); } void CMFCMoveWindowDlg::OnBnClickedButton2() { //up CRect rec; GetWindowRect(&rec); rec.top -= m_iMove; rec.bottom -= m_iMove; MoveWindow(&rec); } void CMFCMoveWindowDlg::OnBnClickedButton4() { //down CRect rec; GetWindowRect(&rec); rec.top += m_iMove; rec.bottom += m_iMove; MoveWindow(&rec); } void CMFCMoveWindowDlg::OnEnChangeEdit1() { // TODO: 如果該控件是 RICHEDIT 控件,它將不 // 發送此通知,除非重寫 CDialog::OnInitDialog() // 函數並調用 CRichEditCtrl().SetEventMask(), // 同時將 ENM_CHANGE 標志“或”運算到掩碼中。 m_iMove = GetDlgItemInt(IDC_EDIT1); } void CMFCMoveWindowDlg::OnBnClickedButton5() { if (!m_bTopWindow) { ::SetWindowPos( m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetDlgItemText(IDC_BUTTON5, "Cancel"); } else { ::SetWindowPos( m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); SetDlgItemText(IDC_BUTTON5, "SetTopWindow"); } m_bTopWindow = !m_bTopWindow; }
void CMFCMoveWindowDlg::OnBnClickedButton6() { if (!m_bCreate) { m_bCreate = !m_bCreate; m_dlgShow.Create(IDD_DIALOG1, NULL); } m_dlgShow.ShowWindow(SW_SHOW); } //subDlg.cpp BOOL CDiaShow::OnInitDialog() { CDialog::OnInitDialog(); // 獲得桌面大小 CRect rectWorkArea; SystemParametersInfo(SPI_GETWORKAREA, 0, &rectWorkArea, SPIF_SENDCHANGE); // 獲得對話框大小 CRect rectDlg; GetWindowRect(&rectDlg); // 將窗口設置到右下角 ::SetWindowPos(m_hWnd, HWND_BOTTOM, rectWorkArea.right - rectDlg.Width(), rectWorkArea.bottom - rectDlg.Height(), rectDlg.Width(), rectDlg.Height(), SWP_NOZORDER); //浮起效果 ::AnimateWindow(m_hWnd, 1000, AW_VER_NEGATIVE|AW_SLIDE); return TRUE; // return TRUE unless you set the focus to a control // 異常: OCX 屬性頁應返回 FALSE }