// CControlJobManagerDlg.cpp: 实现文件 // #include "stdafx.h" #include "Servo.h" #include "CControlJobManagerDlg.h" #include "afxdialogex.h" // CControlJobManagerDlg 对话框 IMPLEMENT_DYNAMIC(CControlJobManagerDlg, CDialogEx) CControlJobManagerDlg::CControlJobManagerDlg(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_DIALOG_CONTROL_JOB_MANAGER, pParent) { m_pPage1 = nullptr; } CControlJobManagerDlg::~CControlJobManagerDlg() { } void CControlJobManagerDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CControlJobManagerDlg, CDialogEx) ON_WM_SIZE() ON_WM_GETMINMAXINFO() END_MESSAGE_MAP() // CControlJobManagerDlg 消息处理程序 BOOL CControlJobManagerDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // page1 m_pPage1 = new CCjPage1(this); m_pPage1->Create(IDD_CJ_PAGE1, this); m_pPage1->ShowWindow(SW_SHOW); Resize(); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } void CControlJobManagerDlg::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); if (GetDlgItem(IDC_TREE1) == nullptr) return; Resize(); } void CControlJobManagerDlg::Resize() { CWnd* pItem; CRect rcClient, rcItem; GetClientRect(&rcClient); GetDlgItem(IDCANCEL)->GetWindowRect(&rcItem); ScreenToClient(&rcItem); const int LEFTWIDTH = 218; int x = 12; int x2 = rcClient.right - 12; int y2 = rcClient.bottom - 12; // 先移动按钮 pItem = GetDlgItem(IDC_BUTTON_BATH_COMPLETION); pItem->GetWindowRect(&rcItem); pItem->MoveWindow(x, y2 - rcItem.Height(), rcItem.Width(), rcItem.Height()); x += rcItem.Width(); x += 8; pItem = GetDlgItem(IDC_BUTTON_BATH_NEW); pItem->GetWindowRect(&rcItem); pItem->MoveWindow(x, y2 - rcItem.Height(), rcItem.Width(), rcItem.Height()); x += rcItem.Width(); x += 8; pItem = GetDlgItem(IDC_BUTTON_BATH_DELETE); pItem->GetWindowRect(&rcItem); pItem->MoveWindow(x, y2 - rcItem.Height(), rcItem.Width(), rcItem.Height()); x += rcItem.Width(); x += 8; pItem = GetDlgItem(IDCANCEL); pItem->GetWindowRect(&rcItem); pItem->MoveWindow(x2 - rcItem.Width(), y2 - rcItem.Height(), rcItem.Width(), rcItem.Height()); y2 -= rcItem.Height(); y2 -= 8; // 树控件 x = 12; pItem = GetDlgItem(IDC_TREE1); pItem->MoveWindow(x, 12, LEFTWIDTH, y2 - 12); x += LEFTWIDTH; x += 5; // 子页面 if (m_pPage1 != nullptr) { m_pPage1->MoveWindow(x, 12, x2 - x, y2 - 12); } } void CControlJobManagerDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI) { CDialogEx::OnGetMinMaxInfo(lpMMI); // 设置最小宽高(比如 400x300) lpMMI->ptMinTrackSize.x = 600; lpMMI->ptMinTrackSize.y = 400; // 也可以顺便设置最大宽高 // lpMMI->ptMaxTrackSize.x = 800; // lpMMI->ptMaxTrackSize.y = 600; }