mrDarker
2025-06-23 69647c4a61e315027a5a222a28e34ceb1c868775
1. 翻页按钮显示从窗口右上方换到右下方
已修改2个文件
51 ■■■■■ 文件已修改
SourceCode/Bond/Servo/PageAlarm.cpp 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/Servo.rc 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/PageAlarm.cpp
@@ -82,12 +82,52 @@
void CPageAlarm::Resize()
{
    CWnd* pItem;
    CRect rcClient;
    GetClientRect(&rcClient);
    pItem = GetDlgItem(IDC_LIST_ALARM);
    pItem->MoveWindow(12, 58, rcClient.Width() - 24, rcClient.Height() - 64);
    // ===== 常量定义 =====
    const int nLeft = 12;
    const int nRight = 12;
    const int nTop = 58;
    const int nButtonHeight = 28;
    const int nButtonMarginBottom = 12;
    const int nSpacing = 8;
    const int nButtonWidth = 80;
    const int nLabelWidth = 100;
    // ===== 分页控件布局 =====
    int yBottom = rcClient.bottom - nButtonMarginBottom - nButtonHeight;
    int xRight = rcClient.Width() - nRight;
    CWnd* pBtnNext = GetDlgItem(IDC_BUTTON_NEXT_PAGE);
    CWnd* pBtnPrev = GetDlgItem(IDC_BUTTON_PREV_PAGE);
    CWnd* pLabelPage = GetDlgItem(IDC_LABEL_PAGE_NUMBER);
    if (pBtnNext && pBtnPrev && pLabelPage) {
        // 获取分页文本宽度估算
        //CString strLabel;
        //GetDlgItemText(IDC_LABEL_PAGE_NUMBER, strLabel);
        //if (strLabel.IsEmpty()) {
        //    strLabel = _T("第 1 / 1 页");
        //}
        //int nCharWidth = 8;
        //int nLabelWidth = strLabel.GetLength() * nCharWidth + 20;
        // 设置按钮和标签位置
        pBtnNext->MoveWindow(xRight - nButtonWidth, yBottom, nButtonWidth, nButtonHeight);
        xRight -= nButtonWidth + nSpacing;
        pLabelPage->MoveWindow(xRight - nLabelWidth, yBottom, nLabelWidth, nButtonHeight);
        xRight -= nLabelWidth + nSpacing;
        pBtnPrev->MoveWindow(xRight - nButtonWidth, yBottom, nButtonWidth, nButtonHeight);
    }
    // ===== 表格区域布局 =====
    if (nullptr != m_listCtrl.m_hWnd) {
        int listHeight = yBottom - nTop - nSpacing;
        m_listCtrl.MoveWindow(nLeft, nTop, rcClient.Width() - nLeft - nRight, listHeight);
    }
}
void CPageAlarm::LoadAlarms()
@@ -114,12 +154,15 @@
{
    // 更新分页信息
    CString strPage;
    strPage.Format(_T("第 %d 页"), m_nCurPage);
    strPage.Format(_T("第 %d / %d 页"), m_nCurPage, m_nTotalPages);
    SetDlgItemText(IDC_LABEL_PAGE_NUMBER, strPage);
    // 启用/禁用翻页按钮
    GetDlgItem(IDC_BUTTON_PREV_PAGE)->EnableWindow(m_nCurPage > 1);
    GetDlgItem(IDC_BUTTON_NEXT_PAGE)->EnableWindow(m_nCurPage < m_nTotalPages);
    // 调整控件大小
    // Resize();
}
void CPageAlarm::FillDataToListCtrl(CListCtrl* pListCtrl, const std::vector<AlarmData>& vecData)
SourceCode/Bond/Servo/Servo.rc
Binary files differ