chenluhua1980
2026-01-19 44360bc2cdeee16be72f9cc4bfb42e0ac26b5b44
SourceCode/Bond/Servo/CCjPage1.cpp
@@ -9,13 +9,11 @@
// CPjPage1 对话框
IMPLEMENT_DYNAMIC(CCjPage1, CDialogEx)
IMPLEMENT_DYNAMIC(CCjPage1, CCjPageBase)
CCjPage1::CCjPage1(CWnd* pParent /*=nullptr*/)
   : CDialogEx(IDD_CJ_PAGE1, pParent)
   : CCjPageBase(IDD_CJ_PAGE1, pParent)
{
    m_crBkgnd = RGB(255, 255, 255);
    m_crBkgndCached = CLR_INVALID;
}
CCjPage1::~CCjPage1()
@@ -24,14 +22,12 @@
void CCjPage1::DoDataExchange(CDataExchange* pDX)
{
   CDialogEx::DoDataExchange(pDX);
   CCjPageBase::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CCjPage1, CDialogEx)
   ON_WM_CTLCOLOR()
BEGIN_MESSAGE_MAP(CCjPage1, CCjPageBase)
   ON_WM_DESTROY()
   ON_WM_SIZE()
END_MESSAGE_MAP()
@@ -40,65 +36,23 @@
BOOL CCjPage1::OnInitDialog()
{
   CDialogEx::OnInitDialog();
    Resize();
   CCjPageBase::OnInitDialog();
   return TRUE;  // return TRUE unless you set the focus to a control
              // 异常: OCX 属性页应返回 FALSE
}
HBRUSH CCjPage1::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
    // 想给哪些控件改底色就把它们的类型写进来:
    const bool needCustomBg =
        (nCtlColor == CTLCOLOR_STATIC) ||
        (nCtlColor == CTLCOLOR_DLG) ||   // 对话框底色
        (nCtlColor == CTLCOLOR_BTN);        // 按钮(可选)
    if (needCustomBg)
    {
        // 若第一次创建,或颜色改变则重建
        if (m_brBkgnd.GetSafeHandle() == nullptr || m_crBkgndCached != m_crBkgnd)
        {
            if (m_brBkgnd.GetSafeHandle())
                m_brBkgnd.DeleteObject();
            m_brBkgnd.CreateSolidBrush(m_crBkgnd);
            m_crBkgndCached = m_crBkgnd;
        }
        // 文本前景/背景设置(仅影响文本绘制)
        pDC->SetBkColor(m_crBkgnd);
        pDC->SetTextColor(RGB(0, 0, 0));
        // 如需让静态文本透明叠在底色上,可用:
        // pDC->SetBkMode(TRANSPARENT);
        return (HBRUSH)m_brBkgnd; // 安全的隐式转换
    }
    // 其他控件类型沿用基类默认的刷子
    return hbr;
}
void CCjPage1::OnDestroy()
{
   CDialogEx::OnDestroy();
   CCjPageBase::OnDestroy();
   // TODO: 在此处添加消息处理程序代码
}
void CCjPage1::OnSize(UINT nType, int cx, int cy)
{
   CDialogEx::OnSize(nType, cx, cy);
    if (GetDlgItem(IDC_LABEL_NO_SEL) == nullptr) return;
    Resize();
}
void CCjPage1::Resize()
{
   CCjPageBase::Resize();
   /*
    CWnd* pItem;
    CRect rcClient, rcItem;
    GetClientRect(&rcClient);
@@ -107,4 +61,5 @@
    pItem->MoveWindow((rcClient.Width() - rcItem.Width()) / 2,
        (rcClient.Height() - rcItem.Height()) / 2,
        rcItem.Width(), rcItem.Height());
      */
}