兔八哥极品软件园    运行: 4505天 | 文章:640 篇 | 评论:527 条 | 碎语:1条

MFC 修改static text 背景和文字颜色

作者:admin 发布于:2012-7-29 11:30 Sunday 分类:Windows


1.在对话框类中添加两个成员变量和一个重写的函数

    CBrush m_brush;
    CFont m_font;


    afx_msg HBRUSH OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor);

2.在初始化窗口函数OnInitDialog(),定义上一步声明的两个变量

    m_font.CreatePointFont(150,"华文行楷");
    m_brush.CreateSolidBrush(RGB(0,255,0));

3.在主窗体代码中重写

HBRUSH CApkSignerDlg::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor) 
{
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    if (nCtlColor==CTLCOLOR_STATIC)
    {
        pDC-> SetTextColor(RGB(0,255,0)); //字体颜色
        pDC-> SetBkColor(RGB(0, 0, 0)); //字体背景色
    }
    // TODO: Return a different brush if the default is not desired
    return hbr;
}

4.添加消息映射ON_WM_CTLCOLOR()

BEGIN_MESSAGE_MAP(CApkSignerDlg, CDialog)
    ON_WM_CTLCOLOR()
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
    ON_BN_CLICKED(IDC_BTN_BROWSER, &CApkSignerDlg::OnBnClickedBtnBrowser)
    ON_BN_CLICKED(IDC_BTN_SIGN, &CApkSignerDlg::OnBnClickedBtnSign)
END_MESSAGE_MAP()


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap